Effacer les filtres
Effacer les filtres

How to reshape a cell array of cell arrays

9 vues (au cours des 30 derniers jours)
Alan
Alan le 6 Avr 2012
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!

Réponse acceptée

Kye Taylor
Kye Taylor le 6 Avr 2012
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 commentaires
Alan
Alan le 6 Avr 2012
I like it! Thanks, Alan
Kye Taylor
Kye Taylor le 6 Avr 2012
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

Alan
Alan le 6 Avr 2012
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.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by