Interpolation avec "griddata"

Fermé
universite125 - 19 oct. 2013 à 19:57
Bonjour,
Je viens de commencer à utiliser Matlab pour faire du traitement de données et de la modélisation 3D.
J'ai un problème. En effet ma matrice de donnée contient beaucoup de NaN et je n'arrive pas à les éliminer.

Voila j'essaye (tant bien que mal^^) de faire une interpolation.
On m'a recommandé de le faire avec "griddata" mais j'obtient des message d'erreurs que je ne comprend pas trop :

voici mon code:
clear all; close all; clc;
load('C:\Users\CSI\Desktop\mes_donnes\DATA_FARIKOU\Base_donnees\base_01_Jan_1999.mat')
sst_01_1999 = sstref(2:end,2:end);
lon=sst_01_1999(1,1:end);
lat =sst_01_1999(1:end,1);

a = sst_01_1999;
a(find(a==-10000000))=nan;
[L,l]= meshgrid(lon,lat);
lon_new=-26:0.1:-14;
lat_new=9:0.1:21;
[lon_new,lat_new] = meshgrid(lon_new,lat_new);

zq = griddata(L,l,a,lon_new,lat_new);

zi = interp2(lon,lat,a,lon_new,lat_new','nearest');


et voici l'erreur que je trouve :

Warning: Duplicate x-y data points detected: using average of the z values.
> In griddata at 107
In test_interpol at 26
??? Error using ==> DelaunayTri
The input points must contain finite values; Inf and NaN are not permitted.

Error in ==> griddata>linear at 159
dt = DelaunayTri(x,y);

Error in ==> griddata at 133
zi = linear(x,y,z,xi,yi);

Error in ==> test_interpol at 26
zq = griddata(L,l,a,lon_new,lat_new);

si vous pouvez m'aider SVP

merci d'avance