Pulling matrix column data out of a cell

2 Ansichten (letzte 30 Tage)
Zach Wallace
Zach Wallace am 12 Nov. 2016
Kommentiert: James Tursa am 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?

Akzeptierte Antwort

Ahmet Cecen
Ahmet Cecen am 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 Kommentare
Zach Wallace
Zach Wallace am 12 Nov. 2016
I didnt know about cell2mat, thanks! But I'm not sure why you need reshape?
James Tursa
James Tursa am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by