/ / count node degree em matlab de uma matriz de adjacência - matlab

contagem de grau de nó em matlab de uma matriz de adjacência - matlab

esta é a minha matriz que exibe um gráfico de rede de amostra

matrix =

0     1     1     1
1     0     1     0
0     0     0     1
1     1     1     0

onde é uma matriz 4x4

       1)    2)    3)    4)

1)     0     1     1     1
2)     1     0     1     0
3)     0     0     0     1
4)     1     1     1     0

Eu quero contar essa matriz 4x4 como linha 1 conta quantos 1s eu tenho e adiciona coluna 1 número de 1 "s a ela e retorna 1) = 5 como total 1" s na linha 1 e col 1 = 5

Eu quero que minha saída seja como

1=5
2=4
3=4
4=5

Respostas:

1 para resposta № 1

Deve ser isso

out = sum([matrix matrix"],2)

Exemplo de execução -

matrix =

1     1     1     1
1     0     0     0
0     1     0     1
0     0     1     1

out =

6
3
4
5

O código acima contaria 1s duas vezes quando aparecem na diagonal, o que, se você não quiser, use isso -

out1 = sum([matrix matrix"],2) - diag(matrix)

Exemplo de execução -

matrix =

1     1     1     1
1     0     0     0
0     1     0     1
0     0     1     1

out1 =

5
3
4
4

1 para resposta № 2

Eu concordo com a resposta de Divakar, mas uma vez que o seu gráfico fica maior e maior, você pode não querer transpor a matriz inteira. Eu sugiro fazer a soma primeiro e então transpor depois:

    sum(matrix,1)"+sum(matrix,2)-diag(matrix);

matrix =

0     1     1     1
1     0     1     0
0     0     0     1
1     1     1     0

degree=sum(matrix,1)"+sum(matrix,2)-diag(matrix)

degree =

5
4
4
5