matlab如何画出下面的图呢?
谢谢啦~
就只要中间点点的连线即可,背景的数字啊虚实啊什么的忽略掉吧~~ 展开
%以下给Q,P,R,S格7个点给上坐标
Qx=1:7;Qy=7*ones(1,7);
Px=1:7;Py=ones(1,7);
Rx=ones(1,7);Ry=1:7;
Sx=7*ones(1,7);Sy=1:7;
%以下用随机数生成对称的关系矩阵PQ,RS
%PQ表示P点和Q点的连接关系,RS表示R点和S点的连接关系
%这里用随机数产生
PQ=zeros(7);
PQ(tril(true(7),-1))=randi(2,[21 1])-1;
PQ=PQ+PQ';
SR=zeros(7);
SR(tril(true(7),-1))=randi(2,[21 1])-1;
SR=SR+SR';
%以下根据坐标画出各点并给每点标记
plot(Qx,Qy,'.');hold on
plot(Px,Py,'.');
plot(Rx,Ry,'.');
plot(Sx,Sy,'.');
for ii=1:7
text(Qx(ii)-0.2,Qy(ii)+0.5,num2str(ii,'Q%d'));
text(Px(ii)-0.2,Py(ii)-0.5,num2str(ii,'P%d'));
text(Rx(ii)-0.5,Ry(ii),num2str(ii,'R%d'));
text(Sx(ii)+0.1,Sy(ii),num2str(ii,'S%d'));
end
%以下根据PQ和RS矩阵,连接各点PQ用红线,RS用黑线
for ii=1:7
for jj=ii:7
if PQ(ii,jj)
plot([Px(ii) Qx(jj)],[Py(ii) Qy(jj)],'r-');
end
if SR(ii,jj)
plot([Sx(ii) Rx(jj)],[Sy(ii) Ry(jj)],'k-');
end
end
end
hold off
axis equal
axis([0 8 0 8]);
某次根据随机矩阵的连线结果如下