matlab中矩阵的均值矩阵

Abd*_*rok 1 matlab

我是matlab的新手,我想问一些问题.matlab中是否有任何函数允许我制作矩阵的均值矩阵?

为了给你一些图片,例如我有这样的矩阵:

A = [ 1 2
      3 4 ]

B = [ 3 2 
      1 2 ]
Run Code Online (Sandbox Code Playgroud)

然后我想要的平均矩阵我之前的意思是这样的

Mean = [ 2 2
         2 3 ]
Run Code Online (Sandbox Code Playgroud)

有人有建议吗?

bla*_*bla 5

另外一个选项:

 mean([A(:) B(:)]')

 ans =

        2     2     2     3
Run Code Online (Sandbox Code Playgroud)

这将从两个矩阵中生成一个向量并返回一个你想要的平均值的向量,然后你可以将它重新整形为2x2,使用reshape,

reshape(mean([A(:) B(:)]'),size(A))

ans =

     2     2
     2     3
Run Code Online (Sandbox Code Playgroud)

编辑: Eitan建议以下单线解决方案更有效:

mean(cat(ndims(A) + 1, A, B), ndims(A) + 1)
Run Code Online (Sandbox Code Playgroud)

  • 我认为`mean(cat(3,A,B),3)`更好,而且不需要重塑. (2认同)
  • 你总是可以在下一个"空"维度中连接矩阵,所以我的解决方案也可以处理任何维度:`mean(cat(ndims(A)+ 1,A,B),ndims(A)+ 1) (2认同)