如何获取Julia中从1到n的数字列表?

时间:2019-10-06 22:18:01

标签: range julia

在MATLAB中,您可以编写1:n。朱莉娅(Julia)中是否有与此表达类似的东西?

2 个答案:

答案 0 :(得分:7)

是的,与Julia中的Matlab的1:n类似。是1:n

但是有一些区别。 Matlab的1:n创建一个“行向量”,这很重要,因为Matlab在列上进行迭代。如果您看Matlab的1:n有趣,它会神奇地变成一个存储所有元素的密集数组,但是如果您仔细地避免看它,我相信它可以避免为它完全分配空间–这就是Matlab的原因linter建议使用(1:n)而不是[1:n]

相反,朱莉娅的1:n是一个真正的列向量,始终只使用两个整数来定义自己。实际上,将其所有元素真正存储到内存中的唯一时间是您是否要求(例如,使用collect)。但是,在几乎所有情况下,都可以将其像真实矢量一样使用,而无需存储其结果。它会非常高效地动态生成其元素。由于它只是以1:n的形式打印出来,因此看起来可能有些奇怪,但这实际上是一个数组。您甚至可以用它做线性代数:

julia> r = 1:4
1:4

julia> r[3]
3

julia> A = rand(0:2, 3, 4)
3×4 Array{Int64,2}:
 0  1  2  2
 1  1  1  2
 1  0  2  1

julia> A * r
3-element Array{Int64,1}:
 16
 14
 11

答案 1 :(得分:3)

我想我正在寻找

collect(1:n)