开发者

Is it possible in matlab to explicitly format the output numbers?

I know about MATLAB's format long, format short, eng ... and so on. But short and long will always display a predefined number of decimals, with an exponent, and for example, format bank will display always 2 decimals.

Is there an option to put your explicit format, in a "fortran way", 开发者_StackOverflowlike f8.3 --> 1234.678 ?

I'm looking for a way to display numbers with 4 decimal points, and the rest ahead of the decimal point, with no exponent.


I don't know of a way to specify a global format of the type you want. sprintf('%15.4f', x) or num2str(x, '%15.4f') do what you're looking for, if you don't mind calling them explicitly each time.


According to the Matlab documentation which is available on their website you can use

format shortG

to set the display format for the output to n.4.


According to the documentation it does allow you to format the number.

Also, the formatting is well documented as well.


There are two simple solutions:

  1. using the sprintf function:

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

  2. using Java-based formatting, which is much more powerful (more information):

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


The closest I could come up with, is:

format bank

It will give you no E, and 2 decimal places.

try to read

help format

to look for other options there (I don't use Matlab anymore... switched to Free Software :) )


I just use sprintf and num2str like mtrw mentioned. sprintf() is meant for multiple scalar arguments of various types (it works w/ matrices, but not really in a clear way). num2str() is meant for use with a single matrix.


Put on top of the Matlab (.m) File the following statement "format shortG".

Example:

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);

More options are available : Matlab output format

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜