Concatenate cell array in matlab
712 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Yash Khandelwal
le 13 Juil 2022
Modifié(e) : Stephen23
le 14 Juil 2022
In Matlab you can concatenate arrays by saying -
a=[];
a=[a,1];
How do you do something similar with a cell array?
a={};
a={a,'abc'};
The code above keeps on nesting cells within cells. I just want to append elements to the cell array. How do I achieve this?
1 commentaire
Stephen23
le 14 Juil 2022
Modifié(e) : Stephen23
le 14 Juil 2022
"In Matlab you can concatenate arrays by saying "
Yes, and the square bracket concatenation operator works with all types of array, not just numeric ones. Lets try:
[1,2,pi] % concatenate scalars
C1 = {1,'cat'};
C2 = {2,'hat'};
[C1;C2] % concatenate cell arrays
T1 = cell2table(C1,'VariableNames',{'A','B'});
T2 = cell2table(C2,'VariableNames',{'A','B'});
[T1;T2] % concatenate tables
S1 = string(C1);
S2 = string(C2);
[S1;S2] % concatenate strings
... etc etc.
In contrast, using {} is not a concatenation operator, it creates a cell array. So when you used {a,'abc'} you told MATLAB to create a new cell array containing those arrays.
Réponse acceptée
Anay Aggarwal
le 13 Juil 2022
Modifié(e) : Anay Aggarwal
le 13 Juil 2022
Hi Yash
I have an understanding that you want to concatenate array.
If a and b are cell arrays, then you concatenate them in the same way you concatenate other arrays: using []:
>> a={1,'f'}
a =
1×2 cell array
{[1]} {'f'}
>> b={'q',5}
b =
1×2 cell array
{'q'} {[5]}
>> [a,b]
ans =
1×4 cell array
{[1]} {'f'} {'q'} {[5]}
To append a single element, you can do a{end+1}=1 or a(end+1)={1}.
Hope this helps
Regards
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays 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!