how to add string matrix to numeric matrix?

Réponses (3)

José-Luis
José-Luis le 26 Oct 2012
You could use cell arrays:
a={'rice';'corn';'wheat'};
b={3;4;3};
your_result = cellfun(@(a,b) [a ' ' num2str(b)],a,b,'uniformoutput',false);

4 commentaires

eri
eri le 26 Oct 2012
can you give me explanation about your answer? it work fine with the example matrix above, but not with matrix i currently working on
It creates a cell array of strings, converting the numbers to strings and putting them at the end of the original strings.
Another way to do the same thing is
your_result = strcat(a, {' '}, num2str(b));
Note that in order for this to work without modification, the two arrays must be column arrays.
eri
eri le 26 Oct 2012
Modifié(e) : eri le 26 Oct 2012
it did work, but the result is in one column, is it possible to make it two columns, for the example above i have two 3x1 matrix and i want the result to be 3x2 matrix?
[a, strcat({' '}, num2str(b))] %output will be cell 3x2 of strings

Connectez-vous pour commenter.

Walter Roberson
Walter Roberson le 26 Oct 2012
No, numeric arrays can never contain strings.
Cell arrays can contain both strings and numbers, in separate elements.
c = {'rice', 3; 'corn', 4; 'wheat', 3};

2 commentaires

eri
eri le 26 Oct 2012
my question is that i already have a and b, and what should i do to get output like c by operating a and b?
Walter Roberson
Walter Roberson le 26 Oct 2012
Modifié(e) : Walter Roberson le 26 Oct 2012
c = [a, num2cell(b)]; %output will be cell 3x2 first col strings second col numeric

Connectez-vous pour commenter.

Azzi Abdelmalek
Azzi Abdelmalek le 26 Oct 2012
a={'rice';'corn';'wheat'}
b=[3;4;3]
c=arrayfun(@(x) [a{x} ' ' num2str(b(x))],1:3,'un',0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Question posée :

eri
le 26 Oct 2012

Community Treasure Hunt

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

Start Hunting!

Translated by