Concatenate
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dear matlabians
I have a cell variable z = (hello1 hello2 hello3) another cell variable y = (bye1 bye2 bye3) and a double x = (1;2;3 , 4;5;6 , 7;8;9)
how i can I concatenate them in a 5x3 vector
v = (hello1;bye1;1;2;3 , hello2;bye2;4;5;6 , hello3;bye3;7;8;9)
thank you
1 Kommentar
Akzeptierte Antwort
Sean de Wolski
am 13 Dez. 2011
This makes the 5x3 that you requested.
c1 = {'hello' 'world' 'Happy Tuesday'};
c2 = {'Need' 'coffee' 'now'};
m1 = magic(3);
C = vertcat(c1,c2,num2cell(m1));
To make a 3x5 use;
C = horzcat(c1',c2',num2cell(m1));
0 Kommentare
Weitere Antworten (2)
Laura Proctor
am 13 Dez. 2011
z = {'hello1','hello2','hello3'};
y = {'bye1','bye2','bye3'};
x = reshape(1:9,3,3);
v = [ z ; y ; num2cell(x) ]
0 Kommentare
the cyclist
am 13 Dez. 2011
Here is one way. I have tried to stick somewhat close to the non-MATLAB notation that you used in your question, but still have working code:
z = {'hello1','hello2','hello3'};
y = {'bye1','bye2','bye3'};
x = [1,2,3;4,5,6;7,8,9];
v = [z',y',num2cell(x)]
The key concept that you need is the use of num2cell() to convert the numerical matrix into a cell array, so that it can be mixed with the strings.
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!