Salut à tous,
Voici mon pb.
J'ai une matrice de dimension 1001*60 représentant la température de 60 profils océanographiques sur 1001 mètres.
Cependant, certaines profondeurs peuvent être vides et sur lesquels je souhaite appliquer une interpolation linéraire simple.
Pour chaque profil, j'exécute le code suivant:
Exemple des valeurs de température pour le profil nº1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 %Détection des profondeurs pour lesquelles la température est renseignée indFiniteValues = find(isfinite(Profondeur(:,i))==1); %Différence entre chaque profondeur valeurDiff = diff(indFiniteValues,i);
Pour le premier profil, tout se passe correctement, en retour j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Profondeur | Température 0 NaN 1 25.22 2 25.23 3 25.21 4 25.22 5 NaN 6 NaN 7 24.96
En revanche, pour le 2ème profil qui contient les valeurs suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 indFiniteValues = 2 3 4 5 8 valeurDiff = 1 1 1 3 1
les valeurs renvoyées sont:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 NaN 22.9340 22.9275 NaN NaN 22.6597 22.4370 22.3244 NaN 21.6122
Je ne comprends pas ce que renvoie valeurDiff étant donné que la différence est censée, dans le cas étudié, renvoyée des valeurs positives !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 indFiniteValues = 2 3 6 7 8 valeurDiff = -4 2 1 -2 1
Si quelqu'un a une idée...
Merci d'avance.
Partager