如何使用MATLAB num2str格式化输出

时间:2010-06-16 22:26:57

标签: string matlab string-formatting

我试图在MATLAB中输出一个数字数组作为字符串。我知道使用num2str很容易做到这一点,但是我想要逗号后跟一个空格来分隔数字,而不是制表符。数组元素最多只有十分之一的分辨率,但大多数都是整数。有没有办法格式化输出,以便不必要的尾随零?这就是我设法组建的内容:

data=[2,3,5.5,4];
datastring=num2str(data,'%.1f, ');
datastring=['[',datastring(1:end-1),']']

给出输出:

[2.0, 3.0, 5.5, 4.0]

而不是:

[2, 3, 5.5, 4]

有什么建议吗?

编辑:我刚才意识到我可以通过调用

strrep来解决这个问题
datastring=strrep(datastring,'.0','')
但是,这似乎比我一直在做的更加笨拙。

2 个答案:

答案 0 :(得分:9)

而不是:

datastring=num2str(data,'%.1f, ');

尝试:

datastring=num2str(data,'%g, ');

输出:[2, 3, 5.5, 4]

或者:

datastring=sprintf('%g,',data);

输出:[2,3,5.5,4]

答案 1 :(得分:3)

使用MAT2STR的另一个选项:

» datastring = strrep(mat2str(data,2),' ',',')
datastring =
[2,3,5.5,4]

2是精度的位数。