how can I set the decimal digits of all coefficients at one time when outputting a polynomial f?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
marvellous
le 27 Oct 2023
Commenté : marvellous
le 27 Oct 2023
In Windows 10, MATLAB R2018a, I try to use fprintf to output a polynomial f, for example, 5.327416*x^2+3.660092*x+1.5799301. How can I set the decimal digits(e.g. 3) of all coefficients at one time instead of setting them one by one? That is, I want the result to be "5.327*x^2+3.660*x+1.580". Anyone can help me? Thanks!
0 commentaires
Réponse acceptée
Walter Roberson
le 27 Oct 2023
P = [5.327416, -3.660092, 1.5799301]
%method 1
vpa(poly2sym(P, sym('x')),4)
%method 2
poly2sym(round(sym(P),3))
%method 3
fmt = [repmat('%.3f*x^%d + ', 1, length(P)-1), '%.3f\n'];
temp = reshape([P; length(P)-1:-1:0], 1, []);
fprintf(fmt, temp(1:end-1));
If you want the + -3.660 to instead show up as - 3.660 then it takes more work.
3 commentaires
Dyuman Joshi
le 27 Oct 2023
Modifié(e) : Dyuman Joshi
le 27 Oct 2023
P = [5.327416, -3.660092, 1.5799301]
y = vpa(poly2sym(P, sym('x')),4);
disp(y)
z = char(y);
fprintf('%s', z)
Plus de réponses (1)
Sam Chak
le 27 Oct 2023
a = 5.327416;
b = 3.660092;
c = 1.5799301;
fprintf('f(x) = %.3f*x^2 + %.3f*x + %.3f', a, b, c)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!