如何使用MATLAB的num2str格式化输出

Dor*_*oom 3 string matlab string-formatting

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

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

它给出了输出:

[2.0, 3.0, 5.5, 4.0]
Run Code Online (Sandbox Code Playgroud)

而不是:

[2, 3, 5.5, 4]
Run Code Online (Sandbox Code Playgroud)

有什么建议?

编辑:我刚刚意识到我可以strrep通过调用来解决这个问题

datastring=strrep(datastring,'.0','')
Run Code Online (Sandbox Code Playgroud)

但这似乎比我一直在做的更加笨拙.

Jac*_*cob 9

代替:

datastring=num2str(data,'%.1f, ');
Run Code Online (Sandbox Code Playgroud)

尝试:

datastring=num2str(data,'%g, ');
Run Code Online (Sandbox Code Playgroud)

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

要么:

datastring=sprintf('%g,',data);
Run Code Online (Sandbox Code Playgroud)

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