Converting 2D cell array to 3D matrix

16 vues (au cours des 30 derniers jours)
Lyle Edwards
Lyle Edwards le 9 Juin 2023
Commenté : Lyle Edwards le 10 Juin 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!

Réponse acceptée

James Tursa
James Tursa le 10 Juin 2023
Modifié(e) : James Tursa le 10 Juin 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
  1 commentaire
Lyle Edwards
Lyle Edwards le 10 Juin 2023
This works, thank you so much!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 9 Juin 2023
cell2mat(reshape(YourCell, 1, 1,[]))

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by