4

我知道 MATLAB 的格式 longformat shorteng ...等等。但是 short 和 long 将始终显示预定义的小数位数,带有指数,例如,格式银行将始终显示 2 个小数。

是否可以选择以“fortran 方式”放置您的显式格式,例如 f8.3 --> 1234.678 ?

我正在寻找一种方法来显示带有 4 个小数点的数字,其余的在小数点之前,没有指数。

4

7 回答 7

11

我不知道如何指定所需类型的全局格式。 sprintf('%15.4f', x)或者num2str(x, '%15.4f')做你正在寻找的东西,如果你不介意每次都明确地调用它们。

于 2009-11-19T00:05:39.883 回答
5

根据他们网站上提供的Matlab 文档,您可以使用

format shortG

将输出的显示格式设置为 n.4。

于 2011-07-05T09:55:54.193 回答
4

根据文档,它确实允许您格式化数字。

此外,格式也有据可查。

于 2009-11-19T00:00:02.023 回答
3

有两个简单的解决方案:

  1. 使用sprintf函数:

    str = sprintf('%.4f', myNumber);

  2. 使用更强大的基于 Java 的格式(更多信息):

    str = char(java.text.DecimalFormat('#.0000').format(myNumber));

于 2011-07-05T13:52:37.353 回答
1

我能想到的最接近的是:

format bank

它不会给你 E 和 2 个小数位。

尝试阅读

help format

在那里寻找其他选项(我不再使用 Matlab ...切换到自由软件 :)

于 2009-11-19T22:28:07.570 回答
0

我只是像提到的 mtrw 那样使用 sprintf 和 num2str 。sprintf()用于各种类型的多个标量参数(它适用于矩阵,但不是很清楚)。num2str()旨在与单个矩阵一起使用。

于 2009-11-19T22:14:26.957 回答
0

在 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 输出格式

于 2014-04-02T20:21:05.830 回答