How to convert from cell array to multidimensional array?

3 visualizaciones (últimos 30 días)
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)?

Respuesta aceptada

per isakson
per isakson el 24 de Jul. de 2017
Editada: per isakson el 24 de Jul. de 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 comentario
Chandrama Sarker
Chandrama Sarker el 24 de Jul. de 2017
Thank You Per, it works well. I have also found out one more way to do that: out = Q= cat(4, C{:});

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by