Pulling matrix column data out of a cell

조회 수: 2 (최근 30일)
Zach Wallace
Zach Wallace 2016년 11월 12일
댓글: James Tursa 2016년 11월 12일
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?

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by