Julia:创建(1,n)数组的简短语法

Julia:创建(1,n)数组的简短语法,julia,Julia,在Matlab中,我可以写: [0:n] 获取一个数组(1,n)。对于n=2,我得到: 0 1 2 在朱莉娅身上如何做到这一点?目的是获得相同类型的数组(1,3) 我知道我可以编写[0 1 2],但我需要一些类似于Matlab的通用工具。在julia中,冒号操作符(无论如何,在本文中)返回一个UnitRange对象。这是一个不可分割的对象;这意味着您可以将它与for循环一起使用,或者您可以收集它的所有内容,等等。如果您收集它的内容,这里得到的是一个向量 如果您所追求的

在Matlab中,我可以写:

[0:n]
获取一个数组(1,n)。对于n=2,我得到:

  0     1     2  
在朱莉娅身上如何做到这一点?目的是获得相同类型的数组(1,3)


我知道我可以编写[0 1 2],但我需要一些类似于Matlab的通用工具。

在julia中,冒号操作符(无论如何,在本文中)返回一个
UnitRange
对象。这是一个不可分割的对象;这意味着您可以将它与for循环一起使用,或者您可以
收集它的所有内容,等等。如果您收集它的内容,这里得到的是一个向量

如果您所追求的是显式的行向量,那么您可以收集UnitRange的内容,并相应地重塑生成的向量(在这种情况下,可以通过简单的转置操作完成)

转置运算符也为UnitRange参数定义:

julia> (1:3).'
1×3 RowVector{Int64,UnitRange{Int64}}:
 1  2  3
但是,请注意结果类型中的差异;如果再次应用
,则会再次获得UnitRange对象

如果您不特别喜欢“RowVector”对象,并且想要一个简单的数组,请在数组构造函数中使用它:

julia> Array((1:3).')
1×3 Array{Int64,2}:
 1  2  3


(以上为julia 0.7最新开发版本)

您可以尝试
hcat(1:n…)
获取数组和
[1:n;]。
获取
行向量
。查看
collect
julia> Array((1:3).')
1×3 Array{Int64,2}:
 1  2  3