这是一个非常具体的例子
>> S = num2str(12345,'%6.0e')
S =
1e+04
这很好,因为我只需要我的第一个数字和指数表示法。但是我还想为指数添加前导零以填充宽度,但我找不到获得以下内容的方法...
1e+004
同时用前导零填充有效数字是非常直接的
>> S = num2str(12345,'%06.0e')
S =
01e+04
那么我想要的是适当的格式吗?或者快速完成它的技巧?
答案 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