concatenate two cells of different dimention into a single array
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have three cells
so for example
Cell1 is 1x3 that is {1;1;1}
Cell2 is 3x2 that is {2,2;3,3;4,4}
Cell3 is 1x2 that is {1;1}
I want to concatenate all these cells into a single array so that i can see the results as
1 2 2 1
1 3 3 1
1 4 4
0 commentaires
Réponse acceptée
Star Strider
le 7 Juin 2016
This works:
Cell1 = {1;1;1};
Cell2 = {2,2;3,3;4,4};
Cell3 = {1;1};
Cell3{3} = []; % Add Empty Element To End Of ‘Cell3’
Result = cat(2, Cell1, Cell2, Cell3)
Result =
[1.0000e+000] [2.0000e+000] [2.0000e+000] [1.0000e+000]
[1.0000e+000] [3.0000e+000] [3.0000e+000] [1.0000e+000]
[1.0000e+000] [4.0000e+000] [4.0000e+000] []
2 commentaires
Star Strider
le 7 Juin 2016
My pleasure.
I am not aware of any way to do what you want without adding an empty element. All the rows and columns have to be equal. You can make it more general with something like this:
Cell1 = {1;1;1};
Cell2 = {2,2;3,3;4,4};
Cell3 = {1;1};
idx = [size(Cell3,1):size(Cell1,1)-1]+1;
Cell3{idx} = []; % Add Empty Element To End Of ‘Cell3’
Result = cat(2, Cell1, Cell2, Cell3)
I do not know how robust that will be with other matrices, but it works here. It gives you a way of having the code calculate the number of empty elements to insert.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices 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!