У меня есть широта, долгота, данные для данных за месяц, я работаю над ними, чтобы поставить на регулярную равномерную сетку (2 градуса) без интерполяции (биннинг).Я получаю ошибку: индекс превышает размеры "
У меня есть lat, lon, var в матрице столбцов, они получены из нескольких файлов за 1 месяц (тысячи строк). Здесь я получаю сообщение об ошибке сX(zind(k,1),zind(k,2))=mean(zind(ind));
, где индекс превышает размеры. Спасибо за помощь,
, где x = lat, 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);
**********************