繁体   English   中英

如何找到矩阵中相邻行的均值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM