Bonjour,
J'ai un vecteur du type :
J'aimerais transformer les premiers NaN par la première valeur réelle (23) et les derniers par le dernière valeur réelle (56).
Code : Sélectionner tout - Visualiser dans une fenêtre à part y=[NaN NaN NaN 23 45 63 24 54 56 NaN NaN NaN NaN]
Je fais donc un truc un peu rébarbatif :
Y'a t il moyen d'améliorer ce code par de l'indexage logique? et si oui, pourrait ton facilement l'améliorer pour permettre de faire la même chose avec un vecteur plus compliqué. Par exemple, transformer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 a=isnan(y); b=find(a==1); NbrNaN=numel(b); c=b-[1:length(b)]; idx1=sum(c==0); idx2=b(idx1+1); y(1:idx1)=y(idx1+1) y(idx2:end)=y(idx2-1)
en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part y=[NaN NaN NaN 23 45 24 NaN NaN 24 54 56 NaN NaN]
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part y=[23 23 23 23 45 24 24 24 24 54 56 56 56]
Partager