How to plus two nan matrix

1 view (last 30 days)
min wong
min wong on 16 May 2017
Commented: James Tursa on 28 Nov 2018
If my two matrix are
a=3*3,b=3*3,c=3*3
a=[1 2 3,4 5 nan,7 nan 9]
b=[nan 3 3,4 5 6,nan 8 9]
c=a+b
Is that possible that c=[1 5 6,8 10 6,7 8 18]
How to calculate?
Thanks

Accepted Answer

James Tursa
James Tursa on 16 May 2017
c = a + b;
c(isnan(c)) = a(isnan(c));
c(isnan(c)) = b(isnan(c));
  5 Comments
James Tursa
James Tursa on 17 May 2017
Depending on what you want to have happen to the "NaN" spots, I am guessing you will want either
c = (a + b)/2;
c(isnan(c)) = a(isnan(c));
c(isnan(c)) = b(isnan(c));
or
c = (a + b)/2;
c(isnan(c)) = a(isnan(c))/2;
c(isnan(c)) = b(isnan(c))/2;
min wong
min wong on 18 May 2017
Thanks !!

Sign in to comment.

More Answers (2)

Paulo Neto
Paulo Neto on 28 Nov 2018
How I can do this: c = (a + b)/b
Regards
  3 Comments
Paulo Neto
Paulo Neto on 28 Nov 2018
I'm considering a and b as arrays:
a=3*3,b=3*3,c=3*3
a=[1 2 3,4 5 nan,7 nan 9]
b=[nan 3 3,4 5 6,nan 8 9]
To calculate c = a + b, I'm using your routine:
c(isnan(c)) = a(isnan(c));
c(isnan(c)) = b(isnan(c));
and results in c=[1 5 6,8 10 6,7 8 18]
But I need to calculate: (a+b)./b, can I use the same method?
James Tursa
James Tursa on 28 Nov 2018
What would you want the individual result to be if "a" is NaN, and if "b" is NaN?

Sign in to comment.


Paulo Neto
Paulo Neto on 28 Nov 2018
I'm considering a and b as arrays:
a=3*3,b=3*3,c=3*3
a=[1 2 3,4 5 nan,7 nan 9]
b=[nan 3 3,4 5 6,nan 8 9]
To calculate c = a + b, I'm using your routine:
c(isnan(c)) = a(isnan(c));
c(isnan(c)) = b(isnan(c));
and results in c=[1 5 6,8 10 6,7 8 18]
But I need to calculate: (a+b)./b, can I use the same method?

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!