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

pp1*_*p11 1 julia

在Matlab中我可以写:

[0:n]
Run Code Online (Sandbox Code Playgroud)

得到一个数组(1,n).对于n = 2,我得到:

  0     1     2  
Run Code Online (Sandbox Code Playgroud)

如何在朱莉娅做同样的事情?目的是获得相同类型的数组(1,3).

我知道我可以写[0 1 2],但我想要一些像Matlab一样的通用.

Tas*_*nou 5

在julia中,冒号运算符(在此上下文中,无论如何)返回一个UnitRange对象.这是一个可迭代的对象; 这意味着你可以将它与for循环一起使用,或者你可以使用它的collect所有内容等.如果你收集它的内容,你在这里得到的是一个Vector.

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

julia> collect(1:3).'
1×3 RowVector{Int64,Array{Int64,1}}:
 1  2  3
Run Code Online (Sandbox Code Playgroud)

.'置算也为UnitRange参数定义:

julia> (1:3).'
1×3 RowVector{Int64,UnitRange{Int64}}:
 1  2  3
Run Code Online (Sandbox Code Playgroud)

但是,请注意结果类型的差异; 如果.'再次应用,则会再次返回UnitRange对象.

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

julia> Array((1:3).')
1×3 Array{Int64,2}:
 1  2  3
Run Code Online (Sandbox Code Playgroud)

(以上是最新的julia 0.7开发版)