4

我将变量值存储在 MATLAB 中,并将其中一个变量值作为文件名的一部分。例如"Error=1e-003.mat",但是当我使用num2str命令将数字转换为字符串时,不同版本的 MATLAB 给了我不同的格式。这个数字1e-3,MATLAB2011 给我1e-003,MATLAB2012 给我1e-03

当我尝试使用这两种格式混合加载一批文件时,这会遇到麻烦。有谁知道为指数添加零或删除零以使名称一致的方法?或者有什么其他方法可以解决这个问题?

4

2 回答 2

1

这是一种相当可靠的方法:

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'.

于 2012-10-04T04:38:39.797 回答
-1

指定一个“格式字符串作为第二个参数,如下所示:

>> disp(num2str(2920230,'%0.10e'))
2.9202300000e+006

这里%0.10e的意思是在小数点前至少显示 0 位,在其后以指数形式显示 10 位。

于 2012-10-04T01:45:16.657 回答