how can I set the decimal digits of all coefficients at one time when outputting a polynomial f?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Walter Roberson
2023-10-27
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 个评论
Dyuman Joshi
2023-10-27
编辑:Dyuman Joshi
2023-10-27
P = [5.327416, -3.660092, 1.5799301]
y = vpa(poly2sym(P, sym('x')),4);
disp(y)
z = char(y);
fprintf('%s', z)
更多回答(1 个)
Sam Chak
2023-10-27
a = 5.327416;
b = 3.660092;
c = 1.5799301;
fprintf('f(x) = %.3f*x^2 + %.3f*x + %.3f', a, b, c)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!