Linear Interpolation to eleminate zero values

27 vues (au cours des 30 derniers jours)
Bleron Kroni
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

Réponse acceptée

Johannes Hougaard
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');
  1 commentaire
YU-CHEN CHANG
YU-CHEN CHANG le 6 Juin 2022
thanks for your answer
help me in 2022 :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Interpolation dans Help Center et File Exchange

Tags

Produits


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by