在matlab中是否可以显式设置输出数字的格式?

在matlab中是否可以显式设置输出数字的格式?,matlab,number-formatting,Matlab,Number Formatting,我知道MATLAB的格式长,格式短,英文。。。等等但short和long将始终显示预定义的小数数,并带有一个指数,例如,format bank将始终显示2个小数 是否有一个选项可以将显式格式放在“fortran方式”中,如f8.3-->1234.678 我正在寻找一种方法来显示有4个小数点的数字,其余的在小数点之前,没有指数。根据文档,它确实允许您 另外,格式是我不知道如何指定所需类型的全局格式sprintf(“%15.4f',x)或num2str(x,“%15.4f”)做你想做的事,如果你不介

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

是否有一个选项可以将显式格式放在“fortran方式”中,如f8.3-->1234.678


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

根据文档,它确实允许您


另外,格式是

我不知道如何指定所需类型的全局格式
sprintf(“%15.4f',x)
num2str(x,“%15.4f”)
做你想做的事,如果你不介意每次都显式地调用它们的话。

我只是像mtrw提到的那样使用sprintf和num2str
sprintf()
适用于各种类型的多个标量参数(它与矩阵一起工作,但不是以一种明确的方式工作)
num2str()
用于单个矩阵。

我能想到的最接近的方法是:

format bank
它不会给你E,小数点后2位

试着阅读

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

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

format shortG

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

有两个简单的解决方案:

  • 使用sprintf功能:

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

  • 使用更强大的基于Java的格式化():

    str=char(java.text.DecimalFormat('#.0000')。格式(myNumber))

  • 在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中,而不是当打印到一个文件或。。。我想更改matlab用于显示数字的格式,例如,在其交互式提示符下工作。我不确定您是否可以更改该格式,如果该格式可用,则可能在选项下。你可以手动打印格式化的数字。我明白了。。。哦,好吧。我会把这个问题再多问一会儿。。。也许有人会想出别的主意…+1。我是来这里说这句话的。我想指出,除了格式化之外,fprintf还可以用于打印到控制台。您可以制作一个函数print(dbl),该函数不使用fprintf(1,“%5.3f\n”,dbl),并使用printf代替disp。