Converting 2D cell array to 3D matrix

16 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

James Tursa
James Tursa il 10 Giu 2023
Modificato: James Tursa il 10 Giu 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

Più risposte (1)

Walter Roberson
Walter Roberson il 9 Giu 2023
cell2mat(reshape(YourCell, 1, 1,[]))

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by