MATLAB Answers

1

How to convert from cell array to multidimensional array?

Asked by Chandrama Sarker on 24 Jul 2017
Latest activity Commented on by Chandrama Sarker on 24 Jul 2017
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.

1 Answer

Answer by per isakson
on 24 Jul 2017
Edited by per isakson
on 24 Jul 2017
 Accepted Answer

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

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.