Linear Fitting starting from a value
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Nicola De Noni
am 10 Okt. 2022
Bearbeitet: Torsten
am 10 Okt. 2022
Hi everyone!
I need to fit these data [100 90 80 70 50 45 40 43 42 40 35] whom are distanced by 10 seconds.
The problem is that I would fit these data starting from the first value (100) in order to understand the slope of the line.
Is it possible?
Thanks!
0 Kommentare
Akzeptierte Antwort
Torsten
am 10 Okt. 2022
Bearbeitet: Torsten
am 10 Okt. 2022
Sure. Use
l(x) = a*x + 100
as model function and fit the parameter a.
xdata = ...; % your xdata as column vector
ydata = ...; % your ydata as column vector
a = xdata\(ydata-100)
But starting from a certain x-value, the slope seems to change. You should separate the fit into two parts:
l1(x) = a*x + 100 0 <= x<= x1
l2(x) = b*x + [(a-b)*x1 + 100] x1 <= x <= x(end)
0 Kommentare
Weitere Antworten (1)
Hiro Yoshino
am 10 Okt. 2022
Bearbeitet: Hiro Yoshino
am 10 Okt. 2022
refline is the easiest way to achieve that.
y = [100 90 80 70 50 45 40 43 42 40 35];
x = 0:10:10*(length(y)-1);
plot(x,y,'o');
refline
if you want to know the coefficients:
p = polyfit(x,y,1)
polyfit for reference.
Siehe auch
Kategorien
Mehr zu Get Started with Curve Fitting Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!