String 如何使用MATLAB'格式化输出;s num2str

String 如何使用MATLAB'格式化输出;s num2str,string,matlab,string-formatting,String,Matlab,String Formatting,我试图在MATLAB中将一个数字数组作为字符串输出。我知道这很容易用逗号来完成,但我希望逗号后面有一个空格来分隔数字,而不是制表符。数组元素的分辨率最多为十分之一,但大多数是整数。有没有一种方法可以格式化输出,从而去掉不必要的尾随零?以下是我设法总结的内容: data=[2,3,5.5,4]; datastring=num2str(data,'%.1f, '); datastring=['[',datastring(1:end-1),']'] 它给出了输出: [2.0, 3.0, 5.5, 4

我试图在MATLAB中将一个数字数组作为字符串输出。我知道这很容易用逗号来完成,但我希望逗号后面有一个空格来分隔数字,而不是制表符。数组元素的分辨率最多为十分之一,但大多数是整数。有没有一种方法可以格式化输出,从而去掉不必要的尾随零?以下是我设法总结的内容:

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]
有什么建议吗

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

datastring=strrep(datastring,'.0','')
但这似乎比我一直在做的事情更麻烦。

而不是: 尝试: 输出:
[2,3,5.5,4]
或: 输出:
[2,3,5.5,4]
另一个选项使用:


2
是精度的位数。

注意精度的位数也会减少小数。例如
mat2str(123,2)
返回
1.2e+002
datastring=num2str(data,'%.1f, ');
datastring=num2str(data,'%g, ');
datastring=sprintf('%g,',data);
» datastring = strrep(mat2str(data,2),' ',',')
datastring =
[2,3,5.5,4]