我知道 MATLAB 的格式 long、format short、eng ...等等。但是 short 和 long 将始终显示预定义的小数位数,带有指数,例如,格式银行将始终显示 2 个小数。
是否可以选择以“fortran 方式”放置您的显式格式,例如 f8.3 --> 1234.678 ?
我正在寻找一种方法来显示带有 4 个小数点的数字,其余的在小数点之前,没有指数。
我知道 MATLAB 的格式 long、format short、eng ...等等。但是 short 和 long 将始终显示预定义的小数位数,带有指数,例如,格式银行将始终显示 2 个小数。
是否可以选择以“fortran 方式”放置您的显式格式,例如 f8.3 --> 1234.678 ?
我正在寻找一种方法来显示带有 4 个小数点的数字,其余的在小数点之前,没有指数。
我不知道如何指定所需类型的全局格式。 sprintf('%15.4f', x)
或者num2str(x, '%15.4f')
做你正在寻找的东西,如果你不介意每次都明确地调用它们。
有两个简单的解决方案:
使用sprintf函数:
str = sprintf('%.4f', myNumber);
使用更强大的基于 Java 的格式(更多信息):
str = char(java.text.DecimalFormat('#.0000').format(myNumber));
我能想到的最接近的是:
format bank
它不会给你 E 和 2 个小数位。
尝试阅读
help format
在那里寻找其他选项(我不再使用 Matlab ...切换到自由软件 :))
我只是像提到的 mtrw 那样使用 sprintf 和 num2str 。sprintf()
用于各种类型的多个标量参数(它适用于矩阵,但不是很清楚)。num2str()
旨在与单个矩阵一起使用。
在 Matlab (.m) 文件的顶部放置以下语句“format shortG”。
例子:
format shortG;
Q = [0 0.54994 0.1998 0.1998;
0 0.54994 0.1998 0.1998;
0 0.54994 0.1998 0.1998;
];
disp(Q);
提供更多选项:Matlab 输出格式