在Julia中将Vector转换为Matrix的最佳方法?

时间:2016-01-04 16:05:10

标签: arrays multidimensional-array julia

假设我有v类型的变量Vector

将其转换为Matrix表示(无论出于何种原因)的最佳/最快方式是什么?

要澄清一下,v''会完成这项工作,但这是最好的方法吗?

3 个答案:

答案 0 :(得分:14)

重塑应该是最有效的。来自文档:

  

重塑(A,dims):创建一个数组,其数据与给定数组相同,但尺寸不同。特定类型数组的实现可以选择是复制还是共享数据。

julia> v = rand(3)
3-element Array{Float64,1}:
 0.690673 
 0.392635 
 0.0519467

julia> reshape(v, length(v), 1)
3x1 Array{Float64,2}:
 0.690673 
 0.392635 
 0.0519467

答案 1 :(得分:6)

v[:,:]可能是最明智的方法。

例如:

julia> v=[1,2,3]
3-element Array{Int64,1}:
1
2
3

julia> m=v[:,:]
3x1 Array{Int64,2}:
1
2
3

julia> ndims(m)
2

答案 2 :(得分:0)

或仅使用:

v = [1, 2, 3]
hcat(v)

结果:

3×1 Array{Int64,2}:
 1
 2
 3