Filter löschen
Filter löschen

Symbolic printing without extensive decimals

2 Ansichten (letzte 30 Tage)
Ramses Young
Ramses Young am 11 Apr. 2021
Kommentiert: Star Strider am 11 Apr. 2021
syms x
f=x*1231871.1561876*5618965/3156651894-561894+4849159*15844/5189;
l=vpa(x*1231871.1561876*5618965/3156651894-561894+4849159*15844/5189);
fprintf('%s\n',f)
fprintf('%s\n',l)
(1351321833700369665875*x)/616259847708475392 + 7647426328677875/536870912
2192.7792938728320167173931401797*x + 14244441.555212950333952903747559
I am trying to get my problem to print more efficiently, I have tried the vpa tool, and it works nicely, but I have no customization (as far as im aware) as to how to control the number of decimal places on the polynomial that is being printed using these commands while having a symbolic function/polynomial.
How can I tidy up this so that it prints in an easier to read format, with, for example, 5 decimal places rather than the amount it has?

Akzeptierte Antwort

Star Strider
Star Strider am 11 Apr. 2021
Set digits to whatever value you want:
syms x
f=x*1231871.1561876*5618965/3156651894-561894+4849159*15844/5189;
digits(5)
l=vpa(x*1231871.1561876*5618965/3156651894-561894+4849159*15844/5189);
fprintf('%s\n',f)
fprintf('%s\n',l)
producing:
(1351321833700369665875*x)/616259847708475392 + 7647426328677875/536870912
2192.8*x + 1.4244e+7
.
  2 Kommentare
Ramses Young
Ramses Young am 11 Apr. 2021
Perfect, thanks!
Star Strider
Star Strider am 11 Apr. 2021
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Martinez Tutt
Martinez Tutt am 11 Apr. 2021
Try using (line spacing)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by