在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的新手)。