本帖最后由 Z同学快学习 于 2019-10-8 15:33 编辑
刚开始接触matlab,请大神们指点一下,怎么把这个代码里面的数据换成我自己的数据。
我自己的数据在附件中,我先直接用加载表格的形式加载,这样方便我换数据~(用到A类点和B类点 两类点数据,在附件中)
请各位大神指点!
代码如下:
clc;clear;close all
pA=rand(300,2);
pB=rand(300,2);
[nA,~]=size(pA);
[nB,~]=size(pB);
gen=600;
x1=min(pB(:,1));
x2=max(pB(:,1));
y1=min(pB(:,2));
y2=max(pB(:,2));
pbound=Polyhedron([x1 y1;x2 y1;x2 y2;x1 y2]);
[V,C]=mpt_voronoi(pB','bound',pbound);
figure
plot(V)
xB=pB(:,1);
yB=pB(:,2);
LC=length(C);
Vertex=cell(1,LC);
for ic=1:length(C)
vi=C(ic).V;
si=convhull(vi);
ci=vi(si,:)/2;
Vertex{ic}=ci;
end
E=0.25;
attract=zeros(nA,1);
for ii=1:length(Vertex)
p=Vertex{ii};
xp=p(:,1);
yp=p(:,2);
xp=[xp;xp(1)];
yp=[yp;yp(1)];
for jj=1:length(pA(:,1))
[in,on]=inpolygon(pA(jj,1),pA(jj,2),xp,yp);
if in==1 || on==1
attract(jj)=1;
end
end
end
C_AB=sum(attract);
Q=C_AB/nA;
Z=(Q-E)/sqrt(E*(1-E)/nA);
disp(Q)
disp(Z)
2019-10-7 21:11 上传
点击文件名下载附件
20.5 KB, 下载次数: 2
B类点
2019-10-7 21:11 上传
点击文件名下载附件
18.5 KB, 下载次数: 2
A类点