Increasing precision of Octave
I notice the values I get from octave are rounded to 5 decimal places. How can I increase that to 6 or 8 for example?
$\endgroup$ 22 Answers
$\begingroup$As noted by William DeMeo in the comments, the command format is what you're looking for. In fact, format is common to both Matlab and Octave.
The command is
format optionswhere options are:shortfor 3 significant figures,longfor 15 significant figures,long e(orE) andshort e(orE) for using scientific notation ...
More is in manual here link
$\endgroup$ 1 $\begingroup$The real answer was never posted to this and I ended up here while trying to find it. The output_precision command is what you want. Setting format long provides much more than the requested amount of precision. That may be okay, but if you want a specific precision, use output_precision instead.
>> help output_precision
'output_precision' is a built-in function from the file libinterp/corefcn/pr-output.cc -- VAL = output_precision () -- OLD_VAL = output_precision (NEW_VAL) -- output_precision (NEW_VAL, "local") Query or set the internal variable that specifies the minimum number of significant figures to display for numeric output. When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function. See also: format, fixed_point_format, output_max_field_width.
Additional help for built-in functions and operators is
available in the online version of the manual. Use the command
'doc <topic>' to search the manual index.
Help and information about Octave is also available on the WWW
at and via the
mailing list.
>> output_precision
ans = 15
>> output_precision(7)
>> a = [1 4.4 4.4^2 4.4^3 4.4^4 4.4^5;]
a = 1.000000 4.400000 19.360000 85.184000 374.809600 1649.162240
>> output_precision(4)
>> a = [1 4.4 4.4^2 4.4^3 4.4^4 4.4^5;]
a = 1.0000 4.4000 19.3600 85.1840 374.8096 1649.1622 $\endgroup$