[英]How to find the mean of adjacent rows in a matrix?
我试图找到矩阵中每个相邻行的mean
:
x=
[
1 2 3 4;
2 3 1 0;
1 0 1 0;
3 1 0 1;
]
简而言之,我需要一个结果矩阵,该矩阵计算第1行和第2行的mean
,然后计算第3行和第4行的mean
,如下所示:
y=
[
2;
0.875
]
我该怎么办?
您可以计算行的平均值,而不是两个连续行的平均值
z=mean(x,2)
z =
2.50000
1.50000
0.50000
1.25000
octave:22> y=((z(1:2:end)+z(2:2:end))/2)
y =
2.00000
0.87500
您可以调整数组的形状,并将每一行放到同一行:
octave:6> [n,m] = size(x);
octave:7> mean(reshape(x.', m*2, n/2))
ans =
2.00000 0.87500
由于转置,结果是一个行向量,如果您确实想要一个列向量,则可以将其转回。
在足够新的MATLAB(我无权访问)上,您应该能够将多个输入参数用作mean
的维度参数 ,从而在这种情况下可以利用多维数组:
[n,m] = size(x);
mean(reshape(x, [2, n/2, m]), [1, 3]) % should leave n/2-sized dimension
出于明显的原因,上述内容未经测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.