如何在MatLab中添加前导零(数字格式)?

时间:2013-06-21 15:51:50

标签: matlab

这是一个非常具体的例子

>> S = num2str(12345,'%6.0e')
S =
1e+04

这很好,因为我只需要我的第一个数字和指数表示法。但是我还想为指数添加前导零以填充宽度,但我找不到获得以下内容的方法...

1e+004

同时用前导零填充有效数字是非常直接的

>> S = num2str(12345,'%06.0e')
S =
01e+04

那么我想要的是适当的格式吗?或者快速完成它的技巧?

2 个答案:

答案 0 :(得分:2)

指数始终是零填充的两位数值。例如,要添加两个零,您可以使用

regexprep(num2str(12345, '%6.0e'), '\+', '\+00')

并实现

ans =
1e+0004

编辑:要覆盖负面指数,您可以使用

regexprep(num2str(0.12345, '%6.0e'), '(\+|\-)', '$100')

实现

ans =
1e-0001

并且,涵盖三位数的指数

regexprep(num2str(1e-100, '%6.0e'), '(\+|\-)(\d{2,3})$', {'$10$2', '$10$2'})

ans =
1e-0100

regexprep(num2str(1e-10, '%6.0e'), '(\+|\-)(\d{2,3})$', {'$10$2', '$10$2'})

ans =
1e-0010

答案 1 :(得分:0)

嗯,我认为你必须编辑,你说你想要的是你得到的:D

但是,如果我正确理解您要找的内容,此功能将帮助您

function printX(x, digits)
    format = sprintf('\t%%.%de', digits - 1);
    strcat(inputname(1), ' = ', sprintf(format, x))
end
相关问题