【发布时间】:2017-07-28 20:32:37
【问题描述】:
我有一个返回二维数组的函数。
如果我 map 这个函数到 UnitRange 我得到一个二维数组的一维数组。
有没有一种巧妙的方法将其收集到 3 维数组中?
y = rand(3,3)
f(x) = y * x
map(f, 1:9)
这将导致9-element Array{Array{Float64},2} 而不是Array{Float64,3}。
使用推导也可以达到同样的效果。
【问题讨论】:
-
或者让函数以
UnitRange作为输入并始终返回一个 3 维数组是否是更好的解决方案? -
cat(3,map(f,1:9)...)是一种可能性 -
[i*j for i in y,j=1:9]是另一个没有定义f -
这确实产生了一个 3 维数组,但结果仍然是数组数组
9x1x1 Array{Array{Float64,2},3}而不是3x3x9 Array{Float64,3} -
实际上 cat 表达式确实有效,我错过了省略号
...。现在它按预期工作。
标签: function multidimensional-array julia