How to reshape a cell array of cell arrays

조회 수: 7 (최근 30일)
Alan
Alan 2012년 4월 6일
I have a cell array that in turn is composed of cell arrays. I would like to collapse the cell array at the top level so that all cells are on the same level. The top level cell array is 1 x 10 and each of the 10 cells contain an N x 1 cell array where N is variable and not necessarily the same for each of the 10 original cells. What I would like to do is similar to the (:) syntax for arrays, so that I collapse the top dimension. Any help would be appreciated!

채택된 답변

Kye Taylor
Kye Taylor 2012년 4월 6일
I assume your 1-by-10 cell is just like the 1-by-10 cell C created with the commands
C = cell(1,10);
for i = 1:10
N = randi(100);
C{i} = num2cell(rand(N,1));
end
You can easily do what you're trying to do with the command
CNew = cat(1,C{:});
Like a hot bath and massage...
  댓글 수: 2
Alan
Alan 2012년 4월 6일
I like it! Thanks, Alan
Kye Taylor
Kye Taylor 2012년 4월 6일
My pleasure!

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

추가 답변 (1개)

Alan
Alan 2012년 4월 6일
So this seems to work: B = arrayfun(@(x)cat(1,A{:,x}),1:size(A,2),'un',0); although B is still a 1x1 cell and I still have to reference it as B{1}{M} to get the cell (M) that I want.

카테고리

Help CenterFile Exchange에서 Data Types에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by