how to add string matrix to numeric matrix?
Show older comments
example:
from
a=[rice;corn;wheat]
b=[3;4;3]
become
c=[rice 3;corn 4;wheat 3]
Answers (3)
José-Luis
on 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 Comments
eri
on 26 Oct 2012
Walter Roberson
on 26 Oct 2012
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.
Walter Roberson
on 26 Oct 2012
[a, strcat({' '}, num2str(b))] %output will be cell 3x2 of strings
Walter Roberson
on 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 Comments
eri
on 26 Oct 2012
Walter Roberson
on 26 Oct 2012
Edited: Walter Roberson
on 26 Oct 2012
c = [a, num2cell(b)]; %output will be cell 3x2 first col strings second col numeric
Azzi Abdelmalek
on 26 Oct 2012
a={'rice';'corn';'wheat'}
b=[3;4;3]
c=arrayfun(@(x) [a{x} ' ' num2str(b(x))],1:3,'un',0)
Categories
Find more on Characters and Strings 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!