MATLAB Answers

How to convert from cell array to multidimensional array?

19 views (last 30 days)
I have a cell array that is 1x10,000 with each cell containing a multidimensional array of (7x7x6). How can I convert from cell array to multidimensional array that has a dimensions of (7,7,6,10000)?

  0 Comments

Sign in to comment.

Accepted Answer

per isakson
per isakson on 24 Jul 2017
Edited: per isakson on 24 Jul 2017
Loops are allowed if one remember to pre-allocate
num = nan( 7, 7, 6, 10000 );
for jj = 1 : 10000
num(:,:,:,jj) = C{jj};
end
and they are fast enough
>> cssm
Elapsed time is 0.048869 seconds.
Elapsed time is 0.037956 seconds.
ans =
1
where cssm is
m = randn( 7,7,6 );
C = repmat( {m}, [1,10000] );
tic
num = nan( 7, 7, 6, 10000 );
for jj = 1 : 10000
num(:,:,:,jj) = C{jj};
end
toc
tic
n02 = cat( 4, C{:} );
toc
all( num(:)==n02(:) )

  1 Comment

Chandrama Sarker
Chandrama Sarker on 24 Jul 2017
Thank You Per, it works well. I have also found out one more way to do that: out = Q= cat(4, C{:});

Sign in to comment.

More Answers (0)