Borrar filtros
Borrar filtros

Why am I getting an NaN value for my array?

2 visualizaciones (últimos 30 días)
Greylyn Gao
Greylyn Gao el 18 de Nov. de 2021
Respondida: Walter Roberson el 18 de Nov. de 2021
n5 = [-5:5];
y0 = abs(Dn2f(0))
y0 = 0.5000
ys = abs(Dn2f(n5))
ys = 1×11
0.0900 0.0000 0.1501 0.3183 0.4502 NaN 0.4502 0.3183 0.1501 0.0000 0.0900
function Dn = Dn2f(n)
if n == 0
Dn = 1/2;
else
Dn = (1-exp(-1j*pi*n/2))./(1j*pi*n);
end
end
I specifically defined the value of my function at 0 because of a division by 0, and it even returns the correct value at 0 when I call it for a single value, but in an array, the value at 0 is NaN?

Respuestas (1)

Walter Roberson
Walter Roberson el 18 de Nov. de 2021
In MATLAB if you test a non-scalar in an "if" statement, then the statement is considered true only if all of the outputs of the expression are non-zero. "if" does not act as a selector to only work on the elements that the test is true for.
You should learn how to use logical indexing.

Categorías

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

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by