【问题标题】:mean of two matrixes with Nans, element per elementNans 的两个矩阵的平均值,每个元素的元素
【发布时间】:2020-03-20 20:15:39
【问题描述】:

我希望每个元素有两个矩阵元素的 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)

但这不是 nansum。如果不考虑 nans,我怎么能做到这一点?

【问题讨论】:

    标签: matlab sum nan mean


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多