MATLAB Answers

Pulling matrix column data out of a cell

2 views (last 30 days)
Zach Wallace
Zach Wallace on 12 Nov 2016
Commented: James Tursa on 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?

Accepted Answer

Ahmet Cecen
Ahmet Cecen on 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.
James Tursa
James Tursa on 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.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by