|
楼主 |
发表于 2010-1-2 08:30
|
显示全部楼层
回复 楼主 supersonics 的帖子
现在我把我的程序贴出来,大家帮我看看,我运行完后无法得到所有点和点之间的距离。当形核点个数为8时,应该有28个点和点之间的距离,可我得到的distance的维数为1*23,而且c怎么等于1了,不可理解。大家一定帮帮忙,谢谢大家了。
clear all;
rand('state',5);
x(1)=0;%定义第一个点的横坐标
y(1)=0;%定义第一个点的纵坐标
n=8;%形核点个数
N=n^2;
dpoint=0; %求点和点的距离变量初始化
L=1;
A=L^2;
k=0.7;%密集程度系数
c=0;%点和点距离的个数,即总共有多少个距离
dmax=(2*A/(N*3^0.5))^0.5;
dmin=k*dmax;%点和点之间的最小距离的限定值
mindistance=0;%点和点之间的最小距离变量初始化
for i=2:n
x(i)=rand(1,1);%随机取第i点的横坐标
y(i)=rand(1,1);%随机取第i点的纵坐标
for j=1:i-1
dpoint(j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);%求第i点到已有点(j点)的距离
c=c+1;
distance(1,c)=dpoint(j);%将任意两点的距离存储到距离向量里面
mindistance=min(distance);%得到向量里面的最小值
if mindistance<dmin %判断点和点之间的最小距离是否小于给定的最小值
x(i)=rand(1,1);%重新取第i点的横坐标
y(i)=rand(1,1);%重新取第i点的纵坐标
c=c-j;%回退到这次循环开始前c的值;
continue;
end
end
end |
|