Converting 2D cell array to 3D matrix

40 visualizaciones (últimos 30 días)
Lyle Edwards
Lyle Edwards el 9 de Jun. de 2023
Comentada: Lyle Edwards el 10 de Jun. de 2023
I have a cell that is [8x454] with each element in the cell containing a [900x1] matrix. I would like to convert this cell into a 3 dimensional matrix of size [8x454x900]. Ive tried some things including reshape, cat and permute but can never seem to get it right. Any help would be greatly appreciated!

Respuesta aceptada

James Tursa
James Tursa el 10 de Jun. de 2023
Editada: James Tursa el 10 de Jun. de 2023
E.g.,
MyCell = repmat({(1:4)'},2,3) % small sample data
MyCell = 2×3 cell array
{4×1 double} {4×1 double} {4×1 double} {4×1 double} {4×1 double} {4×1 double}
[m,n] = size(MyCell);
reshape(cell2mat(MyCell(:)').',m,n,[])
ans =
ans(:,:,1) = 1 1 1 1 1 1 ans(:,:,2) = 2 2 2 2 2 2 ans(:,:,3) = 3 3 3 3 3 3 ans(:,:,4) = 4 4 4 4 4 4
size(ans)
ans = 1×3
2 3 4

Más respuestas (1)

Walter Roberson
Walter Roberson el 9 de Jun. de 2023
cell2mat(reshape(YourCell, 1, 1,[]))

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by