我试图在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','')
但是,这似乎比我一直在做的更加笨拙。
答案 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)