马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
数组A(x,y)是空间中的任意点。数组B包含有200000个空间的点,每个点的坐标用x1和y1表示,在每个点上有一个值z1。目的是:找出数组B中距离A (x,y)最近的9个点,然后求出这9个点的平均mean(z1(1:9))。
更清楚一点:比如A中的一个点是:(x0,y0),目的就是求出B中距离(x0,y0)最近的9个点,然后求出这9个点的z的平均值。
用循环很容易实现,如果不用循环如何,或者如何提高循环的速度。谢谢
clc; clear; tic
x=randn(1,1000); y=randn(1,1000);
x1=randn(1,200000); y1=randn(1,200000);
z1=randn(1,200000); z2=zeros(1,1000);
for i=1:1000
dis=(x(i)-x1).^2+(y(i)-y1).^2;
[B,ix]=sort(dis);
z2(i)=mean(z1(ix(1:9)));
end
toc
[ 本帖最后由 ChaChing 于 2010-6-26 23:21 编辑 ] |