Remove specific edgelabels in the plot of a graph

4 Ansichten (letzte 30 Tage)
Gaetano Pavone
Gaetano Pavone am 14 Mär. 2021
Kommentiert: Aghamarsh Varanasi am 17 Mär. 2021
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?

Akzeptierte Antwort

Aghamarsh Varanasi
Aghamarsh Varanasi am 17 Mär. 2021
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 Kommentare
Gaetano Pavone
Gaetano Pavone am 17 Mär. 2021
Thank you, but I would like to remove all indexes that are not related to active and passive elements
Aghamarsh Varanasi
Aghamarsh Varanasi am 17 Mär. 2021
You could instead use 'edgesNotLabled' variable in the above code for labeling active and passive elements only.
labeledge(h, edgesNotLabled, edgename(edgesNotLabled));

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by