![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/365812/image.png)
Linear Interpolation to eleminate zero values
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Bleron Kroni
le 24 Sep 2020
Commenté : YU-CHEN CHANG
le 6 Juin 2022
Hello,
I'm trying to do a linear interpolation of vector y.
So where the 0 begins, I want to take the previous value that is 1 and where the 0 end, the next value that is 4 and interpolate.
That for the next section too, From 3 to 2
Can anyone help please
yn = interp1( idx_start,idx_end ,'spline');
y = [1 2 1 0 0 4 2 1 2 3 0 0 0 2 4 2 2 1]
for k = 1:length(y)-1
if y(k)== 0
idx_start = y(k-1)
break
else
while y(k)== 0
k = k+1
if k>0
idx_end = y(k)
break
end
end
end
end
0 commentaires
Réponse acceptée
Johannes Hougaard
le 24 Sep 2020
I'm not sure I fully understand your issue, but this may be a solution (or something to point you in the direction)
y = [1 2 1 0 0 4 2 1 2 3 0 0 0 2 4 2 2 1]
x = 1:length(y);
y0 = y(y~=0);
x0 = find(y~=0);
y_int = interp1(x0,y0,x,'linear');
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/365812/image.png)
1 commentaire
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!