我在寻找这一请求的反面
所以当我输入num2str(foo,3)时,我得到了这个:
foo=0.00781
foo=0.0313
foo=0.125
foo=0.5
foo=2
foo=8不过,我想让它们都有相同的长度,所以这样的东西:
foo=0.0078
foo=0.0313
foo=0.1250
foo=0.5000
foo=2.0000
foo=8.0000-怎么-我能用num2str做这个吗?(如果mat2str也能起作用,我会非常感激的)
谢谢你的帮助!
编辑:
我注意到还有另一个-yet没有解决--这个问题的一部分,是指大于10,或100,1000等的数字。
如果我想要这个呢?
foo=000.5000
foo=002.0000
foo=008.0000
foo=032.0000
foo=128.0000例如,将前导零添加到指定的长度?我试过'%3.3f',但不起作用。
发布于 2015-08-02 10:43:08
一个数字
>> num2str(.125, '%0.4f')
ans =
0.1250或者使用sprintf
>> sprintf('%0.4f', .125)
ans =
0.1250对于矩阵
在输入矩阵时使用num2str。在格式说明符中包括所需的分隔符列(这样的空格):
>> num2str([.125 .5; 2 8], '%0.4f ')
ans =
0.1250 0.5000
2.0000 8.0000如果您想要mat2str-like格式,您只需要处理生成的字符串,将; (或仅包括;)包含在每一行的末尾,并以[、]括起来。
x = [.125 .5; 2 8];
s = num2str(x, '%0.4f ');
s = [s repmat('; ', size(s,1), 1)].';
s = ['[' s(1:end-2) ']'];在这个例子中,这会给出
>> s
s =
[0.1250 0.5000; 2.0000 8.0000]前导零点
如果要使前导零达到固定数量的字符,请使用表单'%08.4f'的格式说明符。这意味着小数点4位,总共8个字符,相当于3个前导零。例如,
x = [.125 .5; 2 8];
s = num2str(x, '%08.4f ');
s = [s repmat('; ', size(s,1), 1)].';
s = ['[' s(1:end-2) ']'];给出
>> s
s =
[000.1250 000.5000; 002.0000 008.0000]https://stackoverflow.com/questions/31771025
复制相似问题