Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从邻接矩阵计算matlab中的节点度_Matlab - Fatal编程技术网

从邻接矩阵计算matlab中的节点度

从邻接矩阵计算matlab中的节点度,matlab,Matlab,这是我的矩阵,它显示了一个示例网络图 matrix = 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 这是一个4x4矩阵 1) 2) 3) 4) 1) 0 1 1 1 2) 1 0 1 0 3) 0 0 0

这是我的矩阵,它显示了一个示例网络图

matrix =

     0     1     1     1
     1     0     1     0
     0     0     0     1
     1     1     1     0
这是一个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
我想计算一下这个4x4矩阵 第1行计算我有多少个1,并将第1列中的1个数相加,返回1)=5作为第1行中的1总数,第1列=5

我希望我的输出像

1=5 
2=4
3=4
4=5
一定是这样-

out = sum([matrix matrix'],2)
示例运行-

matrix =

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

out =

     6
     3
     4
     5
matrix =

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

out1 =

     5
     3
     4
     4
上面的代码在对角线上出现时会计算两次1s,如果您不想,请使用此代码-

out1 = sum([matrix matrix'],2) - diag(matrix)
示例运行-

matrix =

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

out =

     6
     3
     4
     5
matrix =

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

out1 =

     5
     3
     4
     4

我同意Divakar的答案,但是一旦你的图变得越来越大,你可能不想转置整个矩阵。我建议先求和,然后转置:

    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