如何在Vector {Float64}和Array {Float64,2}之间转换?

时间:2019-08-14 11:03:38

标签: julia

在Julia v1.1.1中,我试图使用一个本身返回一维数组的函数来生成多维数据数组。例如。

myfunction() = rand(4)
x = [myfunction() for i = 6]

这将产生类型为Vector {Float64} [4]的结果。

如何将其转换为6x4 Array {Float64,2}类型?我已经尝试过

convert(Matrix, x)

但是,这将返回: MethodError:没有与Array {T,2}匹配的方法,其中T(:: Array {Array {Float64,1},1}) 最接近的候选人是...

我知道我可以先初始化一个二维数组,然后在循环中对其进行变异:

x = ones(6,4)
for i = 1:4
    x[:,i] = myfunction()
end

但是,我宁愿使用理解,主要是因为它是一种优雅的单行代码。

当然,这里也可能有效率方面的考虑因素,我很高兴听到(显然,我是Julia的新手)。

0 个答案:

没有答案