how to add string matrix to numeric matrix?

74 次查看(过去 30 天)
example:
from
a=[rice;corn;wheat]
b=[3;4;3]
become
c=[rice 3;corn 4;wheat 3]

回答(3 个)

José-Luis
José-Luis 2012-10-26
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 个评论
eri
eri 2012-10-26
编辑:eri 2012-10-26
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?
Walter Roberson
Walter Roberson 2012-10-26
[a, strcat({' '}, num2str(b))] %output will be cell 3x2 of strings

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2012-10-26
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 个评论
eri
eri 2012-10-26
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 2012-10-26
编辑:Walter Roberson 2012-10-26
c = [a, num2cell(b)]; %output will be cell 3x2 first col strings second col numeric

请先登录,再进行评论。


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

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by