具有 Nans 的两个矩阵的平均值,每个元素的元素

mean of two matrixes with Nans, element per element

我想要每个元素的两个矩阵元素的 nanmean。我似乎无法使用函数 nanmean 来完成它,因为它不会对每个元素求和。

简化示例:

A= [1 1 1 
    1 1 1
    1 nan 1];

B=[3 3 3
   3 3 3
   3 3 3];

我想要的结果:

C= [2 2 2
    2 2 2
    2 3 2];

所以 nan 被忽略了。

我在 https://nl.mathworks.com/matlabcentral/answers/366304-how-to-sum-up-multiple-matrices-element-by-element

上找到的一种对每个元素求和的方法
A(:,:,1)=randi([1 3],100,100);
A(:,:,2)=randi([1 3],100,100);
A(:,:,3)=randi([1 3],100,100);
A(:,:,4)=randi([1 3],100,100);
B=zeros(size(A,1),size(A,2));
for i=1:size(A,3)
    B=B+A(1:size(A,1),1:size(A,2),i);
end
disp(B)

但这不是南苏。在不考虑 nans 的情况下我该怎么做?

您可以沿第 3 个维度连接矩阵,然后沿该维度应用 nanmean

C = cat(3,A,B);
C = nanmean(C,3);

(当然你可以把这两个语句写成一个,为了清楚起见,我这样写。)