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 :

sqrt( ((CCBP(24,2)-CCBP(22,2))^2/(24-22))*(23-22))+CCBP(22,2)

ans =

0.5925
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.

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