我将变量值存储在 MATLAB 中,并将其中一个变量值作为文件名的一部分。例如"Error=1e-003.mat"
,但是当我使用num2str
命令将数字转换为字符串时,不同版本的 MATLAB 给了我不同的格式。这个数字1e-3
,MATLAB2011 给我1e-003
,MATLAB2012 给我1e-03
。
当我尝试使用这两种格式混合加载一批文件时,这会遇到麻烦。有谁知道为指数添加零或删除零以使名称一致的方法?或者有什么其他方法可以解决这个问题?
我将变量值存储在 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
用文字:转换数字,并检查倒数第二个字符是 a'+'
还是 a '-'
。如果是这样,请添加一个'0'
.
指定一个“格式字符串作为第二个参数,如下所示:
>> disp(num2str(2920230,'%0.10e'))
2.9202300000e+006
这里%0.10e
的意思是在小数点前至少显示 0 位,在其后以指数形式显示 10 位。