How to use generated code from cftool to find unknown variables
Afficher commentaires plus anciens
I have three variables x y and z where x is speed (mx1 array), y is torque (nx1 array), z is efficiency (mxn array). This is a motor data. On using auto fit in cftool it chose interpolant-linear.
I want to find efficiency (z)of the motor at any given speed and torque (i.e x and y). I don't know what to do after generating the code and saving the results in workspace.
4 commentaires
Walter Roberson
le 1 Avr 2021
"interpolant-linear" is the same as interp2(); you do not need cftool for that.
DARSHAN N KANNUR
le 5 Avr 2021
Walter Roberson
le 5 Avr 2021
z_at_query = interp2(x, y, z.', x_query, y_query)
The .' on z is important. Your data has x going down columns, but in MATLAB x goes across rows.
DARSHAN N KANNUR
le 5 Avr 2021
Réponses (2)
The fitted object you export to the workspace is an sfit object. You can evaluate an sfit object by passing the values at which you want to evaluate it into the object as shown in the example on that documentation page. The same holds for cfit objects:
load census
f = fit(cdate, pop, 'poly2')
plot(cdate, pop, 'o-') % show the data
hold on
plot(1985, f(1985), 'x') % show the fitted value for 1985
The X looks to be pretty close to the line.
1 commentaire
DARSHAN N KANNUR
le 5 Avr 2021
Walter Roberson
le 5 Avr 2021
The use of interpolant in this case can be replaced by just calling interp2() without using cftool at all.
x y and z where x is speed (mx1 array), y is torque (nx1 array), z is efficiency (mxn array).
z_at_query = interp2(x, y, z.', x_query, y_query)
The .' on z is important. Your data has x going down columns, but in MATLAB x goes across rows.
Catégories
En savoir plus sur Interpolation dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
