如何提高循环迭代速度?
有一个二维数组A,是坐标值,维数是27*2890。有另外一个二维数组B,仍然是坐标值,大小是1001*4500.
我想知道A中的每个点与B中的距离最小的那个B点的值。比如:A(1,1)可能与B(100,200)距离最小,我要得到B点的值。
我是通过下面的方法判断:
for i=1:27
for j=1:2890
temp=(B-A(i,j)).^2;
=sort(temp(:));
D(i,j)=B(I(1));
end
end
这个程序非常非常耗费时间,我的机器大概3个小时。
高手帮看看怎么提高速度?我感觉主要是B数组太大了。
谢谢 sort 改成min试试 改成了,还是很慢的
大概得20分钟把
对了写错了,如果不改是30分钟
谢谢ls的
回复 楼主 re-us 的帖子
楼主解决的吗?若方便的话, 建议可否说明一下你的原始议题
个人看法, 有时从源头思考, 或许会有意想不到的结果 对数组进行排序后,然后设计一种合适的搜索算法,效率应该能够有很大的提升
页:
[1]