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

时间:2019-01-25 11:04:29

标签: matrix octave element

我正在尝试查找矩阵中每个相邻行的mean

x=
[
1 2 3 4;
2 3 1 0;
1 0 1 0;
3 1 0 1;
]

简而言之,我需要一个结果矩阵,该矩阵计算第1行和第2行的mean,然后计算第3行和第4行,如下所示:

y=
[
2;
0.875
] 

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以计算行的平均值,而不是两个连续行的平均值

   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

答案 1 :(得分:1)

您可以调整数组的形状并将彼此的行放到同一行:

octave:6> [n,m] = size(x);
octave:7> mean(reshape(x.', m*2, n/2))
ans =

   2.00000   0.87500

由于转置,结果是一个行向量,如果您确实想要一个列向量,则可以将其转回。

在足够新的MATLAB上(我无权访问),您应该可以使用multiple input arguments for the dimension parameter of mean,在这种情况下,您可以利用多维数组:

[n,m] = size(x);
mean(reshape(x, [2, n/2, m]), [1, 3]) % should leave n/2-sized dimension

出于明显的原因,上述内容未经测试。