Saving an interpolated function to an m-file
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Julius de Hond
le 19 Oct 2019
Commenté : Ethan Duckworth
le 12 Juil 2021
I have some complicated function that I have interpolated using interp1() so that evaluating it is much faster. I would like the result of this interpolation to be available systemwide by saving it as a function in an .m-file. An example:
xd = -1:0.01:1;
yd = xd.^2;
f = @(x) interp(xd, yd, x);
Is there a way to save the result f to f.m such that I can evaluate f(x) anywhere?
0 commentaires
Réponse acceptée
Sai Bhargav Avula
le 22 Oct 2019
Hi,
To my understanding, you want to save the custom interpolation as function to be available for further evaluation.
For that you can write the code as a MATLAB function.
Here is a sample version for the example code you provided
function res = f(x)
xd = -1:0.01:1;
yd = xd.^2;
res = interp(xd, yd, x);
end
Hope this helps.
2 commentaires
Ethan Duckworth
le 12 Juil 2021
I'm not positive, but I doubt you can save anything (memory, speed, etc.) by deleting the data and somehow keeping the function. The interp1 function by default uses linear interpolation, so suppose you had a million data points, and formed the interpolating function. The function itself would have something equivalent in size to the million data points built into the definition/formulas for the function! Of course, you can put the data inside the function file, and not keep it in the workspace.
On the other hand, you might be able to get a more compact/efficient regression function and throw the data away.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Interpolation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!