我想使用逗号作为千位分隔符将一个数字变成一个字符串.就像是:
x = 120501231.21; str = sprintf('%0.0f',x);
但有效果
str = '120,501,231.21'
如果内置的fprintf / sprintf无法做到这一点,那么我可以使用正则表达式,也许通过调用Java(我假设有一些基于locale的格式化程序)或基本的字符串插入操作来构建酷的解决方案.但是,我不是Matlab正则表达式中的专家,也不是从Matlab调用Java.
相关问题:How can I print a float with thousands separators in Python?
在Matlab中有没有确定的方法?
使用数千个分隔符格式化数字的一种方法是调用Java语言环境感知格式化程序. “无文件Matlab”博客中的“
formatting numbers”文章解释了如何做到这一点:
>> nf = java.text.DecimalFormat; >> str = char(nf.format(1234567.890123)) str = 1,234,567.89
其中char(…)将Java字符串转换为Matlab字符串.
瞧!