Effacer les filtres
Effacer les filtres

Interpolating a double array

2 vues (au cours des 30 derniers jours)
Vaultec
Vaultec le 1 Juil 2014
Modifié(e) : Youssef Khmou le 2 Juil 2014
So far I am given a plot that is a 33x1 double. How do I interpolate the data so I can have a total of 1000 data sets?
I dont quite get how to use the interp1 or interp2 function in this case.
attached is the figure
In addition after I have got the derivative of the data, how do i find the zeroes on it? (figure14)

Réponse acceptée

Youssef  Khmou
Youssef Khmou le 2 Juil 2014
Modifié(e) : Youssef Khmou le 2 Juil 2014
There is an alternative to interpolation functions :
% Given the vector r of 33x1 :
r=randn(33,1);
y=upsample(r,30);
% y is 990x1

Plus de réponses (1)

dpb
dpb le 1 Juil 2014
Modifié(e) : dpb le 2 Juil 2014
Presuming you have x,y in order to have generated the plots (if not, simply retrieve 'x|ydata' from the axes)
A)
xi=linspace(x(1),x(end),1000); % 1000 points between x range
yi=interp1(x,y,xi); % interpolate at those points
B)
xinflect=find(abs(sign(diff(y)),2)==2); % find points slope changes sign
NB: the above finds all points of maxima/minima, if need which keep the sign and select based on it. I'll leave which is which as "exercise for the student"... :)

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!

Translated by