我正在尝试查找矩阵中每个相邻行的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
]
我该怎么办?
答案 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
出于明显的原因,上述内容未经测试。