这是一个非常具体的例子
>> S = num2str(12345,'%6.0e')
S =
1e+04
这很好,因为我只想要我的第一个数字和指数符号。但是我也想在指数中添加前导零以填充宽度,但我无法找到获得以下内容的方法......
1e+004
同时用前导零填充有效数字非常简单
>> S = num2str(12345,'%06.0e')
S =
01e+04
那么是否有适合我想要的格式?还是快速完成它的技巧?
这是一个非常具体的例子
>> S = num2str(12345,'%6.0e')
S =
1e+04
这很好,因为我只想要我的第一个数字和指数符号。但是我也想在指数中添加前导零以填充宽度,但我无法找到获得以下内容的方法......
1e+004
同时用前导零填充有效数字非常简单
>> S = num2str(12345,'%06.0e')
S =
01e+04
那么是否有适合我想要的格式?还是快速完成它的技巧?
指数始终是一个补零的两位数值。要添加,比如说,你可以使用两个零
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
好吧,我认为你必须编辑,你说你想要的是你得到的:D
但是,如果我正确理解了您要查找的内容,此功能将为您提供帮助
function printX(x, digits)
format = sprintf('\t%%.%de', digits - 1);
strcat(inputname(1), ' = ', sprintf(format, x))
end