Clear Filters
Clear Filters

How to make the line of best fit go through the origin?

36 views (last 30 days)
Effectivenormalstress=[41,79,119,159,197,80];
Maximumshearstress=[34,73,97,138,173,56];
x=Effectivenormalstress;
y=Maximumshearstress;
scatter(x, y, 'rx');
xlabel('Effective normal stress');
ylabel('Shear stress');
sgtitle('Interpretation for angles of shearing resistance');
coefficients=polyfit(x, y, 1);
xFit=linspace(min(x),max(x),1000);
yFit=polyval(coefficients, xFit);
hold on;
plot(xFit,yFit,'b-' , 'LineWidth',1);
grid on;

Accepted Answer

David Goodmanson
David Goodmanson on 23 Apr 2020
Edited: David Goodmanson on 23 Apr 2020
Hello Ash,
Effectivenormalstress=[41,79,119,159,197,80]'; % make these into column vectors
Maximumshearstress=[34,73,97,138,173,56]';
x=Effectivenormalstress;
y=Maximumshearstress;
c = x\y
xplot = 1:200;
plot(xplot,c*xplot,x,y,'o');grid on
The idea is to fit the linear relation x*c = y in the least squares sense where x and y are column vectors.
  1 Comment
Mohd Aaquib Khan
Mohd Aaquib Khan on 13 Sep 2023
Hi David, this is very useful, thanks.
Also how can I find the goodness of fit in this fit? R value or any other goodness of fit parameter!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!