2

我有以下内容:

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

B = A(1,:);

我输出 B:

B = A(1,:);

B =

 1     2     5

我希望将 B 中包含的内容组合成一个字符串:

1/2/5
4

2 回答 2

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 正确指出的那样,如果将此字符串写入管道或文件中,则可能会出现问题。所以请谨慎使用。

于 2012-10-18T14:42:22.027 回答
2

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

  1. 将您的数字转换为字符串(这将允许以后使用http://www.mathworks.com/help/matlab/ref/num2str.html正确转换疯狂的值num2str

  2. 水平连接字符串(您可以使用 MATLAB 连接属性 A = [BC]),但功​​能方式是strcat http://www.mathworks.com/help/matlab/ref/strcat.html

于 2012-10-18T14:43:29.077 回答