作者Anny19 (安妮)
看板MATLAB
标题[讨论] 不使用for回圈的阵列运算
时间Sat Jun 1 01:19:49 2013
一维阵列 X/Y 为100个点的位置 x/y 分量
X=[x1 x2 x3....x100];
Y=[y1 y2 y3....y100];
有些情况下 X 和Y会跑出多余的点
所以我想计算出每个点与剩余点的距离
目的是想找出相邻太近的质点,使其合并
我有写出来,但总觉得用的方法太笨
求高手指点
我的程式码:
for n=1:100
Xtemp=X(n);
Ytemp=Y(n);
distance=(Xtemp-X).^2+(Ytemp-Y).^2;
distance=sqrt(distance);
ind=find(distance~=0 & distance<20);
if isempty(ind)==0
X(n)=(X(n)+sum(X(ind)))/(length(ind)+1);
X(ind)=[];
Y(ind)=[];
end
end
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.34.54.3
※ 编辑: Anny19 来自: 1.34.54.3 (06/01 01:27)
1F:→ iHakka:可使用parfor平行化,sqrt那行可以省掉不用算省点时间 06/03 23:16