Interpolating a function that is constant over some parts of its domain?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jonathan Hawkins
le 12 Juin 2017
Commenté : Jonathan Hawkins
le 13 Juin 2017
I'm trying to write code that will linearly interpolate samples from a generic real-valued function. Interp1 seems to break if the function is constant over any part of its domain, and unfortunately for me this is an extremely common use case - as a simple function:
{0, if x<0
f(x) = {x, if 0<=x<=1
{1, otherwise
It seems like interp1([0, 0, 1, 1], [-10,0,1,10], x) ought to return this function (for x \in [-10,10]), but instead I get the error that "The grid vectors must contain unique points."
Is there another interpolation function that doesn't break when you feed it functions that are sometimes constant?
1 commentaire
Stephen23
le 12 Juin 2017
vq = interp1(x,v,xq)
where x is the independent variable. You have the x and v swapped around.
Réponse acceptée
David Goodmanson
le 12 Juin 2017
Modifié(e) : David Goodmanson
le 12 Juin 2017
Hi Jonathan,
just swap inputs,
interp1([-10,0,1,10], [0,0,1,1], x)
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!