2012-02-13 2 views
0

私は緯度、経度、1ヶ月間のデータを持っていますが、補間なしで(規則的な)均一なグリッド(2度)を置くように働いています。私はエラーが発生しています:インデックスは次元を超えています分散データからのグリッド化、インデックス超過

私は緯度、経度、varは列の行列にあります、これらは1ヶ月(何千もの行)の複数のファイルから得られています。ここではX(zind(k,1),zind(k,2))=mean(zind(ind));インデックスは、次元を超えて助けてくれてありがとう、

のx =緯度、Y = LON、Z = VAR

% make grid for scattered lat, lon, var 
    data=load('mydata.txt') 
    x=data(:,1); 
    y=data(:,2); 
    z=data(:,3); 
    %make a grid with 2 degree 
    cellsize=2; 
    minx=-90; 
    maxx=90; 
    miny=-180; 
    maxy=180; 
    xi=(minx:cellsize:maxx); 
    yi=(miny:cellsize:maxy); 
    [X,Y]=meshgrid(xi,yi); 
    [m,n]=size(X); 
    %populate grid and make average 
    xind=floor((x-minx)./cellsize)+1; 
    yind=floor((y-miny)./cellsize)+1; 
    zind=unique([yind,xind],'rows'); 
    Z=ones(m,n).*NaN; 

    for k=1:length(zind) 
    ind=find(xind==zind(k,2)&... 
    yind==zind(k,1)==1); 
    X(zind(k,1),zind(k,2))=mean(zind(ind)); 
end 
    %make a plot 
    figure; 
    axis([-180 180 90 -90]); 
    imagesc(xi,yi,Z); 
    ********************** 

答えて

0

まず:。

ind=find(xind==zind(k,2)&... 
    yind==zind(k,1)==1); 

私はトンを考えていません彼は==1がそこにあるはずです。

第2に、私はあなたのエラーがmean(zind(ind))から来ると思います。zindの平均が一意(y、x)インデックスのインデックスであることは望ましくありません。あなたは平均を望むz

X(zind(k,1),zind(k,2))=mean(z(ind)); % changed last zind -> z 
+0

多くの有益な情報と迅速な返信ありがとうございます。 – KSK

+0

ここでは、ループから追加データ(mydata.txt)を使用しました。imagesc(xi、yi、Z)を使用してプロットしている間に、毎日複数のプロットが表示されています。私に教えてください。プロット中にこれを避け、最終プロットを得るにはどうすればいいですか?あなたの助けに感謝。 – KSK