Pulling matrix column data out of a cell

2 vues (au cours des 30 derniers jours)
Zach Wallace
Zach Wallace le 12 Nov 2016
Commenté : James Tursa le 12 Nov 2016
I have a cell array with 29 matrices that are each 500x6 doubles. I want to take the first column of each matrix and load them into a single matrix that is 500x29. Then, I want to do this with each column, ending with 6 matrices of 500x29. I feel like theres a way to do this with a for loop I just dont know how. Help?

Réponse acceptée

Ahmet Cecen
Ahmet Cecen le 12 Nov 2016
Say your Cell array is C:
D = cell2mat(C);
E = reshape(D(:),[500 29*6]);
Now every 500 by 29 chunk in E is a matrix you want.
  2 commentaires
Zach Wallace
Zach Wallace le 12 Nov 2016
I didnt know about cell2mat, thanks! But I'm not sure why you need reshape?
James Tursa
James Tursa le 12 Nov 2016
Slight edit:
D = cell2mat(C(:)); % Use C(:) to ensure columns line up
E = reshape(D,[500 29 6]); % So 3rd index picks off the 500x29 matrix
I.e., E(:,:,1) is your 1st matrix, E(:,:,2) is your 2nd matrix, etc. Could of course use mat2cell on E if you wanted the result in a cell array.

Connectez-vous pour commenter.

Plus de réponses (0)

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