Why am I getting an NaN value for my array?
2 ビュー (過去 30 日間)
古いコメントを表示
n5 = [-5:5];
y0 = abs(Dn2f(0))
ys = abs(Dn2f(n5))
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?
0 件のコメント
回答 (1 件)
Walter Roberson
2021 年 11 月 18 日
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.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!