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)

 Akzeptierte Antwort

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

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation of 2-D Selections in 3-D Grids finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020b

Tags

Gefragt:

am 9 Nov. 2020

Beantwortet:

am 9 Nov. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by