How to plus two nan matrix

1 visualización (últimos 30 días)
min wong
min wong el 16 de Mayo de 2017
Comentada: James Tursa el 28 de Nov. de 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

Respuesta aceptada

James Tursa
James Tursa el 16 de Mayo de 2017
c = a + b;
c(isnan(c)) = a(isnan(c));
c(isnan(c)) = b(isnan(c));
  5 comentarios
James Tursa
James Tursa el 17 de Mayo de 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 el 18 de Mayo de 2017
Thanks !!

Iniciar sesión para comentar.

Más respuestas (2)

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

Iniciar sesión para comentar.


Paulo Neto
Paulo Neto el 28 de Nov. de 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?

Categorías

Más información sobre NaNs en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by