Azzera filtri
Azzera filtri

find node with maximum degree

3 visualizzazioni (ultimi 30 giorni)
Hemiru
Hemiru il 21 Giu 2022
Commentato: Hemiru il 22 Giu 2022
Hello !!
I have nodes 1 to 30 with degree
node = [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]
degre = [ 11 11 12 10 15 10 8 14 12 1 8 6 2 18 5 3 7 4 15 2 0 0 0 0 0 0 0 0 0 0 ]
how to find node with maximum degree and label it xi .?
i tried using [B,I] = maxk(deg,node); but it doesn't work. because the degree value is always changing
should node 14 with degree 18 be labeled 1 and ect, until all nodes are labeled
thank you
  2 Commenti
Dyuman Joshi
Dyuman Joshi il 21 Giu 2022
If you want to get the values from the arrays -
node=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30];
degree=[11 11 12 10 15 10 8 14 12 1 8 6 2 18 5 3 7 4 15 2 0 0 0 0 0 0 0 0 0 0];
[degmax,idx]=max(degree)
degmax = 18
idx = 14
node(idx)
ans = 14
Hemiru
Hemiru il 21 Giu 2022
thank for the anwers Dyuman joshi
but, how can i check all the nodes by degree using loop and label them according to the highest to lowest degree.
exp
node = [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
degre = [ 11 11 12 10 15 10 8 14 12 1 8 6 2 18 5 ]
label = [6 7 4 8 2 9 10 3 5 10 11 12 14 1 15 ]

Accedi per commentare.

Risposte (1)

Dyuman Joshi
Dyuman Joshi il 22 Giu 2022
Your "label" seems incorrect.
node=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15];
degree=[11 11 12 10 15 10 8 14 12 1 8 6 2 18 5];
deg=unique(degree,'stable'); %for comparing individual elements
z=zeros(size(degree)); %pre-allocating array
y=sort(degree,'descend'); %sorting descendingly, to get highest-to-lowest
for i=1:numel(deg)
z(degree==deg(i))=find(y==deg(i));
end
z
z = 1×15
6 7 4 8 2 9 10 3 5 15 11 12 14 1 13

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Tag

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by