Create function from polyfit curve
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Megan Miller
am 10 Sep. 2020
Kommentiert: Ameer Hamza
am 10 Sep. 2020
I'm trying to make an equation that correlates engine speed with pressure. My goal is to be able to input an rpm into a function and have it spit out a pressure. I have a plot of the data and a polyfit curve.
Here is the relevant snipit from my script:
[p, S, mu] = polyfit(Input_Speed, press, 7);
v = polyval(p, Input_Speed, S, mu);
figure(3)
plot(Input_Speed, press)
hold on
plot(Input_Speed, v)
xlabel("Speed (rpm)")
ylabel("Pressure (psi)")
legend('Filtered Data', 'Fit Curve')

What is the best way of doing this? A lookup table? Use poly2sym to turn the polyfit coefficients into an equation? I'm open to any suggestions. Thank you!
1 Kommentar
KSSV
am 10 Sep. 2020
Already you have coefficients in hand..you can use polyval to get the output values for given input. poly2sym shows you a polynomial in x as symbolic class but you need to substitue and get the value again.
Akzeptierte Antwort
Ameer Hamza
am 10 Sep. 2020
An easy solution is to wrap the result of polyfit into an anonymous function
[p_coff, S, mu] = polyfit(Input_Speed, press, 7);
P = @(Input_Speed) polyval(p_coff, Input_Speed, S, mu);
Then you can call it like a function, without the need to specify p_coff, S, and mu each time
figure(3)
plot(Input_Speed, press)
hold on
plot(Input_Speed, P(Input_Speed))
xlabel("Speed (rpm)")
ylabel("Pressure (psi)")
legend('Filtered Data', 'Fit Curve')
2 Kommentare
Weitere Antworten (0)
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!