这是一种你可以做的事情.首先,在您感兴趣的圈子上生成积分
clear;
theta=linspace(0,2*pi,31);theta=theta(1:end-1);
[x,y]=pol2cart(theta,1);
接下来,如果您知道已连接的节点对,则可以跳过此步骤.但是在许多情况下,您可以从其他计算得到连接矩阵,并从中找到连接节点的索引.在这里,我创建了一个布尔的连接矩阵.因此,如果有N个节点,连接矩阵是一个NxN对称矩阵,其中如果第i个第j个元素为1,则表示您有一个从节点i到节点j的连接,否则为0.然后,您可以提取非零对的下标以获取节点连接(仅需要上三角形).
links=triu(round(rand(length(theta))));%# this is a random list of connections
[ind1,ind2]=ind2sub(size(links),find(links(:)));
这是我使用上面的代码生成的连接矩阵.
现在我们只需要绘制一个连接,一次一个
h=figure(1);clf(h);
plot(x,y,'.k','markersize',20);hold on
arrayfun(@(p,q)line([x(p),x(q)],[y(p),y(q)]),ind1,ind2);
axis equal off
这将给你一个类似于你的例子的人物