0

我的脚本使用以下方法绘制网格:

gplot(adj,NC,'-o')

其中“adj”是邻接矩阵,“NC”是节点坐标的矩阵。它工作得非常好,只是它没有在图表上显示节点的编号。

例如,对于这样的网格:

我需要节点的编号出现在图表上,节点坐标矩阵由下式给出:

NC =
      0         0
      0         8.455
      0         16.91
      17.385    0
      17.385    8.455
      17.385    16.91
      34.77     0
      34.77     8.455
      34.77     16.91

该脚本还提供了节点编号矩阵,在本示例中如下所示:

A =
     1     4     7
     2     5     8
     3     6     9

节点的数量也可以表示为范围 k=1:M,其中 M 是已知的

我相信可以使用上述矩阵将节点的编号添加到图中,但我不知道如何。有任何想法吗?

4

2 回答 2

0

无论如何,我已经解决了这个问题,如果有人感兴趣,这里是代码:

p=Nw/Ne;
g=Nh/Ne;
for u=1:M1
h=text(NC(u,1)+p,NC(u,2)+g,num2str(u,'%d'));
set(h,'Color',[0 0 1])
end

p 和 g 是偏移量,它们会有所不同,因为节点的数量取决于用户的输入。

于 2013-04-19T12:29:24.730 回答
0

您必须手动设置标签text()

offsetx = 0.5;
offsety = -0.5;
labels  = arrayfun(@(x,y) sprintf('x: %5.2f\ny: %5.2f',x,y), NC(:,1),NC(:,2),'un',0);
labels2 = arrayfun(@(x,y) sprintf('(%g, %g)',x,y), NC(:,1),NC(:,2),'un',0);

text(NC(:,1)+offsetx, NC(:,2)+offsety,labels2)

使用偏移量(您也可以为每个点定义特定的偏移量)和格式(使用labelslabels2或您自己的)玩一点。

编辑处理评论

您可以使用矩阵A来创建标签,并且offsetx,offsety可以是与长度相同的向量NC(:,1)

labels = arrayfun(@(x) sprintf('%d',x),A(end:-1:1,:),'un',0);
text(NC(:,1)+offsetx, NC(:,2)+offsety,labels(:))
于 2013-04-19T12:16:06.103 回答