在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一样的通用.
在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开发版)