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
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.
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.
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
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:
using the sprintf function:
str = sprintf('%.4f', myNumber);
using Java-based formatting, which is much more powerful (more information):
str = char(java.text.DecimalFormat('#.0000').format(myNumber));
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.