声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 863|回复: 0

[编程技巧] 如何提高运行速度

[复制链接]
发表于 2010-6-18 05:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
数组A(x,y)是空间中的任意点。数组B包含有200000个空间的点,每个点的坐标用x1y1表示,在每个点上有一个值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 编辑 ]
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-17 19:03 , Processed in 0.058519 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表