How to plus two nan matrix

1 visualizzazione (ultimi 30 giorni)
min wong
min wong il 16 Mag 2017
Commentato: James Tursa il 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

Risposta accettata

James Tursa
James Tursa il 16 Mag 2017
c = a + b;
c(isnan(c)) = a(isnan(c));
c(isnan(c)) = b(isnan(c));
  5 Commenti
James Tursa
James Tursa il 17 Mag 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 il 18 Mag 2017
Thanks !!

Accedi per commentare.

Più risposte (2)

Paulo Neto
Paulo Neto il 28 Nov 2018
How I can do this: c = (a + b)/b
Regards
  3 Commenti
Paulo Neto
Paulo Neto il 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 il 28 Nov 2018
What would you want the individual result to be if "a" is NaN, and if "b" is NaN?

Accedi per commentare.


Paulo Neto
Paulo Neto il 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?

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by