我是matlab的新手,我想问一些问题。 matlab中是否有任何函数允许我制作矩阵的均值矩阵?
为了给你一些图片,例如我有这样的矩阵:
A = [ 1 2
3 4 ]
B = [ 3 2
1 2 ]
然后我想要的平均矩阵我之前的意思是这样的
Mean = [ 2 2
2 3 ]
有人有建议吗?
答案 0 :(得分:5)
另一种选择:
mean([A(:) B(:)]')
ans =
2 2 2 3
这将从两个矩阵中生成一个向量并返回您想要的均值向量,然后可以使用reshape
将其重新整形为2x2,
reshape(mean([A(:) B(:)]'),size(A))
ans =
2 2
2 3
编辑:Eitan建议采用以下单线解决方案,效率更高:
mean(cat(ndims(A) + 1, A, B), ndims(A) + 1)
答案 1 :(得分:3)
您可以像下面这样做:
a = [1 2 ;...
3 4];
b = [1 3 ;...
1 2];
sum = a + b;
mean = sum ./ 2;
它将是:
mean =
1.0000 2.5000
2.0000 3.0000