How to round a result to two decimal places, Part 2

37 views (last 30 days)
shows how to round the result to two decimal places.
Here what I would want Matlab to do is to round the display to two demical places.
(1) I have
Fit = polyfit(series_1,series_2, 1);
theString = sprintf('(dependent variable) = %.3f*(independent variable) %.3f', Fit(1), Fit(2));
How can one let Matlab display only up to two demical places?
(2) I have
corr=corrcoef(series_1,series_2);
num2str(corr(1,2),3)
How can one let Matlab display only up to two demical places?
(3) I have
tbl=anova(mdl);
tbl2=table2cell(tbl('x1',4)) % Get F-statistics
tbl3=string(tbl2);
How can one let Matlab display only up to two demical places?
  3 Comments
Jan
Jan on 16 Dec 2020
What is "the output"? You have used sprintf('%.3f') to create 3 decimal places, so thge reader can assume, that you can simply use the '%.2f' command. See: doc sprintf
In the documentation of num2str you find, that you cn use the same format specifier as in sprintf. See Walter's answer.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 16 Dec 2020
series_1 = 1:10;
series_2 = cos(rand(1,10));
Fit = polyfit(series_1,series_2, 1);
theString = sprintf('(dependent variable) = %.2f*(independent variable) %.2f', Fit(1), Fit(2));
% ^ ^
disp(theString)
(dependent variable) = 0.02*(independent variable) 0.70
corr=corrcoef(series_1,series_2);
num2str(corr(1,2),2)
ans = '0.6'
% ^
tbl2 = {rand}
tbl2 = 1x1 cell array
{[0.3002]}
string(tbl2)
ans = "0.30025"
compose("%.2f", tbl2{:})
ans = "0.30"
sprintf('%.2f', tbl2{:})
ans = '0.30'

More Answers (0)

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!