Remove specific edgelabels in the plot of a graph

조회 수: 4 (최근 30일)
Gaetano Pavone
Gaetano Pavone 2021년 3월 14일
댓글: Aghamarsh Varanasi 2021년 3월 17일
I would like to remove specific edgelabels in the plot of a graph. In particular, edgelabels that do not satisfy some conditions.
For example, in my graph plot function I have:
edgename=(1:7)';
active=[1 2];
passive=[4 5];
labeledge(p,edgename(~active|~passive),'');
p is the plot.
However, it doesn't work.
How can I do this?

채택된 답변

Aghamarsh Varanasi
Aghamarsh Varanasi 2021년 3월 17일
Hi,
You can use a index array to specify which graph edges to have the edgeLabels. For example,
s = [1 1 1 2 2 3 4];
t = [2 3 4 2 5 6 7];
G = graph(s,t);
h = plot(G);
% edges that are not labled
active = [1,2];
passive = [4,5];
edgesNotLabled = [active passive];
% create index array
idx = 1:numedges(G);
idx(edgesNotLabled) = [];
edgename=(1:7)';
% label remaining edges in idx
labeledge(h, idx, edgename(idx));
  댓글 수: 2
Gaetano Pavone
Gaetano Pavone 2021년 3월 17일
Thank you, but I would like to remove all indexes that are not related to active and passive elements
Aghamarsh Varanasi
Aghamarsh Varanasi 2021년 3월 17일
You could instead use 'edgesNotLabled' variable in the above code for labeling active and passive elements only.
labeledge(h, edgesNotLabled, edgename(edgesNotLabled));

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Graph and Network Algorithms에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by