2026a

# colon,:


向量、数组下标和 for 循环迭代

# 语法

x = j:k
x = j:i:k
A[:,n]
A[m,:]
A[:]
A[j:k]

# 说明

冒号(:)是 Julia 最有用的运算符之一。使用该运算符可以创建向量,索引数组,以及指定 for 迭代


x=j:k 创建一个包含元素 [j,j+1,j+2,...j+m] 的单位间距范围 x,其中m=trunc(k-j)。如果 j 和 k 都是整数,则化简为 [j,j+1,...,k]示例


x=j:i:k 创建一个等间距范围 x,以 i 作为元素之间的增量。范围元素大致为 [j,j+i,j+2i,...,j+mi],其中 m=trunc((k-j)/i)。但是,如果 i 不是整数,则浮点算术运算的作用在于确定 Colon 是否包括范围中的端点 k,因为 k 可能并不是正好等于 j+m*i。示例


A[:,n]、A[m,:]、A[:] 和 A[j:k] 是包含冒号的矩阵 A 的常见索引表达式。如果您在索引表达式中使用冒号作为下标,例如 A[:,n]),则它是包含特定数组维度中所有下标的简写形式。创建使用冒号进行索引的向量也很常见,例如 A[j:k]。有些索引表达式结合了两种冒号用法,如 A[:,j:k] 中所示。示例

包含冒号的常见索引表达式包括:

  • A[:,n] 是矩阵 A 的第 n 列。
  • A[m,:] 是矩阵 A 的第 m 行。
  • A[:,:,p] 是三维数组 A 的第 p 页。
  • A[:] 将 A 中的所有元素重构成一个向量。如果 A 已经是向量,则此表达式没有任何作用。
  • A[j:k] 使用向量 j:k 对 A 进行索引,因此相当于向量 [A[j], A[j+1], ..., A[k]]。
  • A[:,j:k] 包含第一个维度中的所有下标,但使用向量 j:k 对第二个维度进行索引。这样将返回包含列 [A[:,j], A[:,j+1], ..., A[:,k]] 的矩阵。

# 示例

创建单位间距向量

创建由 1 到 10 之间的数字组成的单位间距向量。冒号运算符使用 +1 作为默认增量。

x = 1:10
x = 1:10

使用 collect 将 x 转换为向量形式

collect(x)
ans = 10-element Vector{Int64}:
1
2
3
4
5
6
7
8
9
10
创建具有指定增量的向量

创建按指定值递增或递减的向量。

创建元素按 0.1 递增的向量。

x = 0:0.1:1
y = collect(x)
y = 11-element Vector{Float64}:
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

创建元素按 -2 递减的向量。

x = 10:-2:0
y = collect(x)
y = 6-element Vector{Int64}:
10
8
6
4
2
0
对矩阵行和列进行索引

详细了解使用冒号 : 对矩阵进行索引的多种方法。

创建一个 3×3 矩阵。对第一行进行索引。

using TyMath
A = magic(3)
A = 3×3 Matrix{Int64}:
8  1  6
3  5  7
4  9  2
A[1,:]
ans = 3-element Vector{Int64}:
8
1
6

对第二列和第三列进行索引。

A[:,2:3]
3×2 Matrix{Int64}:
1  6
5  7
9  2

将矩阵重构成列向量。

A[:]
ans = 9-element Vector{Int64}:
8
3
4
1
5
9
6
7
2
指定for循环迭代

在 for 循环上下文中,冒号指定循环迭代。

编写一个 for 循环,求 1 到 4 之间的数字 n 的平方。

for n = 1:4
println(n^2)
end
1
4
9
16

# 输入参数

j-起始向量值
标量

起始向量值,指定为实数标量。如果 j < k,因此输出向量非空,则 j 是该向量中的第一个元素。

示例: x = 0:5

示例: x = 0:0.5:5

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Char | DateTime

k-结束向量值
标量

结束向量值,指定为实数标量。仅当按照增量刚好递增到等于 k 时,k 才是该向量中的最后一个值。例如,向量 0:5 的最后一个值为 5,但 0:0.3:1 的最后一个值并不是 1,因为按照其增量并不会刚好递增到等于该端点值。

示例: x = 0:5

示例: x = 0:0.5:5

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Char | DateTime

i-向量元素之间的增量
标量

向量元素之间的增量,指定为实数标量。

示例: x = 0:0.5:5

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Period

x-等间距范围
UnitRange

等间距范围,以 UnitRange 形式返回。

# 提示

  • for 参考页介绍了如何在循环语句上下文中使用 :。
  • LinRange类似于冒号运算符 :,但可以直接控制数据点数并始终包含端点。同类函数 logspace 生成对数间距值。

# 另请参阅

cat | vcat | hcat | hvcat