这是我的矩阵,显示示例网络图
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行并返回1)= 5作为第1行中的总1和第1列= 5
我希望我的输出像
1=5
2=4
3=4
4=5
答案 0 :(得分:1)
一定是它 -
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
上面的代码在对角线出现时会计算两次,如果您不想要,请使用此代码 -
out1 = sum([matrix matrix'],2) - diag(matrix)
示例运行 -
matrix =
1 1 1 1
1 0 0 0
0 1 0 1
0 0 1 1
out1 =
5
3
4
4
答案 1 :(得分:1)
我同意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