Matlab 计算邻接矩阵中对角线以下所有值的平均值

Matlab 计算邻接矩阵中对角线以下所有值的平均值,matlab,matrix,mean,Matlab,Matrix,Mean,我有一个邻接矩阵M,类似这样: [1 2 0 2 4 2 1 2 0 -1 0 3 1 2 3 2 0 2 1 0 4 -1 3 0 1] 我想计算对角线以下(但不包括)所有值的平均值。最终输出应为1.5 为了得到这些值,我想我应该使用N=tril(M,-1)。问题是我现在在矩阵的上下部分有零,因此mean(sum(N)。/sum(N~=0))不起作用。因为我也有负值,我也不能只计算值>=0的平均值。如何执行此操作?在一

我有一个邻接矩阵M,类似这样:

[1  2   0   2   4
 2  1   2   0  -1
 0  3   1   2   3
 2  0   2   1   0
 4 -1   3   0   1]
我想计算对角线以下(但不包括)所有值的平均值。最终输出应为1.5

为了得到这些值,我想我应该使用
N=tril(M,-1)
。问题是我现在在矩阵的上下部分有零,因此
mean(sum(N)。/sum(N~=0))
不起作用。因为我也有负值,我也不能只计算值>=0的平均值。如何执行此操作?

在一行中使用仅提取对角线下方的值:

M = [ 1  2  0  2  4;
      2  1  2  0 -1;
      0  3  1  2  3;
      2  0  2  1  0;
      4 -1  3  0  1];

mean(M(tril(true(size(M)),-1)))
这将返回@excaza所示的
1.5

在一行中,使用仅提取对角线下方的值:

M = [ 1  2  0  2  4;
      2  1  2  0 -1;
      0  3  1  2  3;
      2  0  2  1  0;
      4 -1  3  0  1];

mean(M(tril(true(size(M)),-1)))

这将返回@excaza指示的
1.5

如何获得
1.2928
?是不是应该是
1.5
?我的错,我输入了错误的数据。问题已更正。您如何获得
1.2928
?是不是应该是
1.5
?我的错,我输入了错误的数据。问题更正。很好,很聪明!你介意把它扩展一下吗?好的,非常聪明!你介意把它扩展一下吗,这样人们就可以了解发生了什么?