具有 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 被忽略了。
上找到的一种对每个元素求和的方法
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);
(当然你可以把这两个语句写成一个,为了清楚起见,我这样写。)
我想要每个元素的两个矩阵元素的 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 被忽略了。
上找到的一种对每个元素求和的方法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);
(当然你可以把这两个语句写成一个,为了清楚起见,我这样写。)