How to reshape a cell array of cell arrays

7 次查看(过去 30 天)
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...

更多回答(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