我正在 MATLAB 中存储变量值,并将其中一个变量值作为文件名的一部分,例如 "Error=1e-003.mat"。但是,在使用 num2str 命令将数字转换为字符串时,不同版本的 MATLAB 给出了不同的格式。对于数字 1e-3,MATLAB2011 给出 1e-003,而 MATLAB2012 给出 1e-03。这会导致问题,当我尝试加载混合了这两种格式的文件批次时。是否有任何方法可以添加或删除指数的零以使名称一致?还是有其他方法解决这个问题吗?
A = num2str(YOUR_NUMBER, '%0.0e');
if A(end-2)=='-' || A(end-2)=='+'
A = [A(1:end-2) '0' A(end-1:end)]; end
换句话说,将数字转换并检查倒数第二个字符是否为'+'
或'-'
。如果是这样,则添加'0'
。
>> disp(num2str(2920230,'%0.10e'))
2.9202300000e+006
这里的%0.10e
表示以指数形式显示小数点前至少0位数字,小数点后正好10位数字。