Hi!

I'm trying to construct a 3 dimensional array from a number of 1 
dimensional arrays. Essentially what i would like to do is

a = [f(i, j) for i in 1:n, j in 1:m]

where f(i, j) is a function that returns an array (note, f has to construct 
the entire array at the same time). The code above creates a 2-dimensional 
array of arrays, but I would like to get a 3-dimensional array with the 
arrays returned by f in the first dimension with i and j in the second and 
third dimension, hope you understand

a[:,:,1] = [f(1,1) f(2,1) ... f(n,1)]
a[:,:,2] = [f(1,2) f(2,2) ... f(n,2)]
.
.
.
a[:,:,m] = [f(1,m) f(2,m) ... f(n,m)]

f(i,j) are column arrays above.

It can be achieved by first creating the large matrix and then filling it

a = zeros(Int64, k, n, m)
for i in 1:n, j in 1:m
  a[:,i,j] = f(i,j)
end

Is this the only way? I find it sort of ugly when its usually possible to 
do nice construction using comprehensions in other cases.

Reply via email to