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 commentaire

Sean de Wolski
Sean de Wolski le 13 Déc 2011
What you have shown for v is a 3x5.

Connectez-vous pour commenter.

 Réponse acceptée

Sean de Wolski
Sean de Wolski le 13 Déc 2011

0 votes

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));

Plus de réponses (2)

Laura Proctor
Laura Proctor le 13 Déc 2011

0 votes

z = {'hello1','hello2','hello3'};
y = {'bye1','bye2','bye3'};
x = reshape(1:9,3,3);
v = [ z ; y ; num2cell(x) ]
the cyclist
the cyclist le 13 Déc 2011

0 votes

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 commentaire

Alexandros
Alexandros le 13 Déc 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Simulink dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by