Concatenation inside cell arrays
Afficher commentaires plus anciens
Dear all,
I have a cell array that is made up of two cell arrays of (1x60) dimensions. Each one of them cell arrays of different dimensions. However, these dimensions are identical in both of them. Again, each one of these inner cell arrays contain multiple double matrices of the same size, but different from their counterparts in the other cell array with one dimension. What I have just said is illustrated for clarification in the image below:

What I would like to do is to concatenate the inner-most matrices each to its corresponding one along their first dimension (concat(17x12 & 13x12) => 30x12) as shown above. That will typically produce a single (1x60) cell array as shown above. I know I can do this with very complicated and time consuming loops, however, I would like your help to make it as compact as possible.
Yours, Maad
Réponse acceptée
Plus de réponses (1)
Tejeswar Yarlagadda
le 12 Juin 2020
Modifié(e) : Tejeswar Yarlagadda
le 13 Juin 2020
I hope this might help you
let us say A is sub cell of B and A is again having single layer of sub cells
for example
A = {{[1;2;3];[5;6;7]},{[1;2;3],[5;6;7]};{[1,2,3];[5,6,7]},{[1,2,3],[5,6,7]}};
if you want to concatenate in
first direction
cellfun(@(x) cat(1,x{:}),A,'UniformOutput',false)
ans =
2×2 cell array
{6×1 double} {6×1 double}
{2×3 double} {2×3 double}
second direction
cellfun(@(x) cat(2,x{:}),A,'UniformOutput',false)
ans =
2×2 cell array
{3×2 double} {3×2 double}
{1×6 double} {1×6 double}
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!