re-us 发表于 2013-1-6 23:13

如何避免这个循环

有两个数组A和B,比如
A=;
B=1:100;

目的是:对于A中的每个元素,找出B中比A(i)大于3并且小于6的元素。

这个当然可以用循环实现:
*****************************
clc
clear

A=;
B=1:100;
for i=1:1
    tmp=B-A(i);
    index=tmp>3&tmp<6;
    B(index)
end
*****************************
但是,当A和B数组很大的时候(比如都是100000的时候),循环耗费很多时间,应该有避免这个循环的算法?

谢谢

rocwoods 发表于 2013-1-8 09:16

可以用统计工具箱中的KDTreeSearcher函数:NS = KDTreeSearcher(B');
C = NS.rangesearch(A'+4.5,1.5-eps);
页: [1]
查看完整版本: 如何避免这个循环