Concatenate

5 views (last 30 days)
Alexandros
Alexandros on 13 Dec 2011
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 Comment
Sean de Wolski
Sean de Wolski on 13 Dec 2011
What you have shown for v is a 3x5.

Sign in to comment.

Accepted Answer

Sean de Wolski
Sean de Wolski on 13 Dec 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));

More Answers (2)

Laura Proctor
Laura Proctor on 13 Dec 2011
z = {'hello1','hello2','hello3'};
y = {'bye1','bye2','bye3'};
x = reshape(1:9,3,3);
v = [ z ; y ; num2cell(x) ]

the cyclist
the cyclist on 13 Dec 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.
  1 Comment
Alexandros
Alexandros on 13 Dec 2011
Thank you so much people for all this answers it work perfectly. I have been programming first time with matlab 2 months now and I have made to fuctions and 1000 lines of code. But i still don't get all the variables that you could have in matlab
Do you have any good tutorial that I could read?
thanks

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!