查看: 134|回复: 2|关注: 0

[已答复] 请问如何将matlab中代码中的数据换成自己的数据

[复制链接]

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2019-10-7 21:12:33 | 显示全部楼层 |阅读模式
本帖最后由 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)

HP_B.xls

20.5 KB, 下载次数: 1

B类点

HP_A.xls

18.5 KB, 下载次数: 1

A类点

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2019-10-8 09:25:21 | 显示全部楼层
求助~~请大神帮个忙!

新手

9 麦片

财富积分


050


0

主题

10

帖子

1

最佳答案
发表于 2019-10-10 10:16:28 | 显示全部楼层
floderpath='C:\Users\'%文件路徑

pA=xlsread(strcat(floderpath,'HP_A.xls'));
pB=xlsread(strcat(floderpath,'HP_B.xls'));
由於Polyhedron函數不知道你怎麼定義的,後面沒有辦法運行,你把前面的改下,再試試
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表