how to plot linear regression ?

1 vue (au cours des 30 derniers jours)
Rand Ardat
Rand Ardat le 8 Fév 2021
Commenté : Star Strider le 8 Fév 2021
i want to do linear regression for : log(vp)=A-B/(T+273.15) !!
vp = [ 1 5 10 20 40 60 100 200 400 760]
T = [-36.7 -19.6 -11.5 -2.6 7.6 15.4 26.1 42.2 60.6 80.1]
y = log10(vp);
x = 1./(T+273.15);
% fit the polynomial
p = polyfit(x,y,1)
% p = -2035.33 8.75201
y=polyval(p,x)
plot(T,y,'or',T,vp,'b')
xlabel('T (C)')
ylabel('vp (mm Hg)')

Réponse acceptée

Star Strider
Star Strider le 8 Fév 2021
Try this:
figure
plot(T,vp,'or',T,10.^y,'b')
xlabel('T (C)')
ylabel('vp (mm Hg)')
The rest of the code is unchanged.
  2 commentaires
Rand Ardat
Rand Ardat le 8 Fév 2021
thank you!
Star Strider
Star Strider le 8 Fév 2021
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

the cyclist
the cyclist le 8 Fév 2021
Modifié(e) : the cyclist le 8 Fév 2021
You should plot
plot(T,10.^y,'or',T,vp,'b')
because you did the regression on log10(y), not y itself.
vp = [ 1 5 10 20 40 60 100 200 400 760]
T = [-36.7 -19.6 -11.5 -2.6 7.6 15.4 26.1 42.2 60.6 80.1]
y = log10(vp);
x = 1./(T+273.15);
% fit the polynomial
p = polyfit(x,y,1)
% p = -2035.33 8.75201
y=polyval(p,x)
plot(T,10.^y,'or',T,vp,'b')
xlabel('T (C)')
ylabel('vp (mm Hg)')
Also, it looks like you plotted the data as a line, and the fit as individual circles. I expect you want the opposite, which is more conventional.
  1 commentaire
Rand Ardat
Rand Ardat le 8 Fév 2021
thank you

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by