将数组合并为一个字符串(matlab)

时间:2012-10-18 14:40:08

标签: arrays string matlab

我有以下内容:

A = [1 2 5; 1 5 7];

B = A(1,:);

我输出B:

B = A(1,:);

B =

 1     2     5

我希望将B中包含的内容合并为一个单独的字符串:

1/2/5

2 个答案:

答案 0 :(得分:4)

您可以使用sprintf

sprintf('%d/',B)

这几乎可以满足您的需求,最终会有不必要的/

>> sprintf('%d/',B)

ans =

1/2/5/

如果你想删除它:

st = sprintf('%d/',B);
st(end) = [];

正如@hmuster正确指出的那样,可以使用退格符\b来做到这一点。

st = [sprintf('%d/',B) sprintf('\b')];

但是,正如@AndrewJanke正确指出的那样,如果将此字符串写入管道或文件,则可能会出现问题。所以要谨慎使用它。

答案 1 :(得分:2)

如果您希望它正确完成(IE可重用),则有两个步骤:

  1. 将您的数字转换为字符串(这样可以通过num2str http://www.mathworks.com/help/matlab/ref/num2str.html

  2. 正确转换以后的疯狂值
  3. 水平连接字符串(可以使用MATLAB连接属性A = [B C]),但功​​能方式为strcat http://www.mathworks.com/help/matlab/ref/strcat.html