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