Function outputs NaN for a cell which is assigned a separate value?

I created the following function:
function [x] = f(y)
x = (y==0).*1+(y~=0).*(1./y);
With the following input, it returns this:
f([-3:3])
ans =
-0.3333 -0.5000 -1.0000 NaN 1.0000 0.5000 0.3333
The value should be 1 when y == 0 but it shows NaN instead (assumably by evaluating 1./y when y == 0)

 Respuesta aceptada

since you want 1 when y is zero, you need something like
y(y==0) = 1;
y(y~=0) = 1./y;
x = y;

Más respuestas (0)

Categorías

Más información sobre Interpolation of 2-D Selections in 3-D Grids en Centro de ayuda y File Exchange.

Productos

Versión

R2020b

Etiquetas

Preguntada:

el 9 de Nov. de 2020

Respondida:

el 9 de Nov. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by