calculate slope from linear fit data

167 views (last 30 days)
I have this code to linear fit data
x = 1:10;
y1 = [1 5 7 8 9 15 16 12 18 20];
scatter(x,y1,'b','*')
P = polyfit(x,y1,1);
slope = P(1)
intercept = P(2)
yfit = P(1)*x+P(2); % P(1) is the slope and P(2) is the intercept
hold on;
plot(x,yfit,'r-.')
And the figure I got from code is attached here
The intercept from figure should be 2.2. But I get the value from code is 0.5.
I didn't understand why the values are different? The code seems correct to me. Any suggestion from anyone?

Accepted Answer

Ameer Hamza
Ameer Hamza on 11 Aug 2018
Edited: Ameer Hamza on 11 Aug 2018
The intercept is indeed 0.5. Intercept is the value on y-axis when x=0. Whereas you 2.2 is the value when x=1.

More Answers (1)

Edward Vivanco
Edward Vivanco on 10 Nov 2019
Error in 1st line: x = 1:10
Fix: x = 0:10

Categories

Find more on Fit Postprocessing 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!