在matlab中是否可以明确格式化输出数字?

时间:2009-11-18 23:57:13

标签: matlab number-formatting

我知道MATLAB的格式长格式短 eng ... 等等。但是short和long将始终显示预定义的小数位数,并带有指数,例如, format bank 将始终显示2位小数。

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

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

7 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:5)

根据其网站上提供的Matlab documentation,您可以使用

format shortG

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

答案 2 :(得分:4)

根据文档,它允许您format the number.

此外,格式为well documented as well.

答案 3 :(得分:3)

有两个简单的解决方案:

  1. 使用 sprintf 功能:

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

  2. 使用基于Java的格式,功能更强大(more information):

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

答案 4 :(得分:1)

我能想到的最接近的是:

format bank

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

尝试阅读

help format

在那里寻找其他选项(我不再使用Matlab了......转而使用自由软件:)

答案 5 :(得分:0)

我只是像上面提到的mtrw一样使用sprintf和num2str。 sprintf()适用于各种类型的多个标量参数(它适用于矩阵,但实际上并不是很明确)。 num2str()适用于单个矩阵。

答案 6 :(得分:0)

在Matlab(.m)文件的顶部放置以下语句"格式化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 output format