# Choosing the role of NaN elements in the sum environment of matrices

1 view (last 30 days)
Richard Wood on 25 Mar 2024
Commented: Chunru on 25 Mar 2024
Hello everyone
I would like to know what would be the best way to add element by element two matrices, a and b, which, for simplicity, could be defined as:
aa=[1 2; 3 NaN];
bb=[NaN 1; 2 NaN];
adding some conditions: i) if two elements in position (i,j) are different from NaN, add them and divide by the number of elements in that position other than NaN (for example, for position (2,2): (2+1)/2, and for position (1,1): 1/1), and ii) if two elements in position (i,j) are equal to NaN, the sum goes to NaN. So I was wondering which will be the an efficient way to do aa+bb under the i) and j) conditions to obtain:
cc=[1 3/2; 5/2 NaN];

Chunru on 25 Mar 2024
aa=[1 2; 3 NaN];
bb=[NaN 1; 2 NaN];
cc = mean(cat(3, aa, bb), 3)
cc = 2x2
NaN 1.5000 2.5000 NaN
Stephen23 on 25 Mar 2024
aa = [1,2; 3,NaN];
bb = [NaN,1; 2,NaN];
cc = mean(cat(3, aa, bb), 3, 'omitnan')
cc = 2x2
1.0000 1.5000 2.5000 NaN
Chunru on 25 Mar 2024
Yes. It should be with 'omitnan' option.