Bonjour, voila je souhaite interpoler les NaN avec une formule qui donne
avec Xt1 = Xmanquant
Xt1 = Racine((Xt2 - Xt)^2)/(t2-t)*(t1-t) + Xt
Par exemple quand j'ai :
0,539009000000000
NaN
0,614645000000000
J'ai à la main la valeur de NaN qui est :
Cependant avec ce code j'ai plusieurs problème, déjà il ne trouve pas les valeurs et mets la valeur de cellule précédemment mais en complexe double.sqrt( ((CCBP(24,2)-CCBP(22,2))^2/(24-22))*(23-22))+CCBP(22,2)
ans =
0.5925
Et je comprend pas l'erreur entre à la main , et au script.
Si vous avez une idée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 %% Scriptpour enlever les valeurs manquantes A = size(CCBP); %Taille de la matrice for i = 1:A(1) %Nombre de ligne for j = 1:A(2) %Npmbre de colonne if isnan(CCBP(i,j))==1 %Si la valeur de la cellule est NaN CCBP(i,j) = sqrt( ( (CCBP(i+1,j)-CCBP(i-1,j))^2/(i+1-i-1) ) * (i-i-1) ) + CCBP(i-1,j); %Remplace la valeur de la cellule par cette formule end end end
EDIT : Juste une erreur de parenthèse c'est good, je reviendrais vous voir je pense pour interpoler 4 NaN de suite
Partager