反距离加权插值matlab_精品文档.txt
《反距离加权插值matlab_精品文档.txt》由会员分享,可在线阅读,更多相关《反距离加权插值matlab_精品文档.txt(2页珍藏版)》请在冰豆网上搜索。
![反距离加权插值matlab_精品文档.txt](https://file1.bdocx.com/fileroot1/2022-10/14/a380e27f-e28a-4f55-bc86-f6964b3419cc/a380e27f-e28a-4f55-bc86-f6964b3419cc1.gif)
%�������Ȩ��ֵ�����Զ�����������
functionZ=IDW(data,station,lon,lat,e,num)
%ע��dataΪ1*n������
%stationdata��Ӧ����ľ�γ��n4*2��һ��γ���ڶ��о���
%lonlat��Ҫ��ֵ���ľ�γ�����ݸ�ʽ���ŷ�(���ŷţ����ŷ�~)��1*n
%e��������Ϊ2
%������ѡ��numΪ���ֵ����ĵ�����Ϊ4~12
%e=2��num=12Ϊarcgis��Ĭ��ֵ
%���ӣ��������ֵ
%DATA=IDW2015(P_m,latlon,lon',lat',2,12);
%
[n1n2]=size(lon);
[n3n4]=size(data);
%ifstation(1,2)>station(1,1)%%%%%%%%ֻ�������ض�����Ŀ�ģ���֤����Ϊx
x=station(:
2)';%��֪���꾭��
y=station(:
1)';%��֪����γ��
%else
%y=station(:
2)';%��֪����wei��
%x=station(:
1)';%��֪����jing��
%end
z=data;%��֪���꺯��ֵ
fori1=1:
n1
X=lon(i1,:
);%Ҫ��ֵ�ľ���
Y=lat(i1,:
);%Ҫ��ֵ��γ��
t1=length(x);
t2=length(X);
if(t1~=0&t2~=0)
%�������r��������ֵ
forj=1:
t2
r=sqrt((X(j)-x).^2+(Y(j)-y).^2).^e;
[IJ]=sort(r);
m=length(I);
if(m>num)
R=I(1:
num);
z11=z(:
J);
z1=z11(:
1:
num);
else
display('����������!
');
stop;
end
a=sum(z1./repmat(R,n3,1),2);%%%gai
b=sum(1./R);
Z(:
j)=a./repmat(b,n3,1);
%ifisnan(Z(:
j))
%Z(:
j)=z(J
(1));
%end
end
end
end