Matlab 计算邻接矩阵中对角线以下所有值的平均值
我有一个邻接矩阵M,类似这样: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的平均值。如何执行此操作?在一
[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
?我的错,我输入了错误的数据。问题更正。很好,很聪明!你介意把它扩展一下吗?好的,非常聪明!你介意把它扩展一下吗,这样人们就可以了解发生了什么?