Symbolic printing without extensive decimals

1 visualización (últimos 30 días)
Ramses Young
Ramses Young el 11 de Abr. de 2021
Comentada: Star Strider el 11 de Abr. de 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?

Respuesta aceptada

Star Strider
Star Strider el 11 de Abr. de 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 comentarios
Ramses Young
Ramses Young el 11 de Abr. de 2021
Perfect, thanks!
Star Strider
Star Strider el 11 de Abr. de 2021
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (1)

Martinez Tutt
Martinez Tutt el 11 de Abr. de 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