问题
MATLAB sinc(0)
will return 1 as it should. But sinc(K)
of some symbol K
for which a value of zero is substituted will return NaN.
The following code illustrates the above:
sinc(0) % calculate sinc of 0, this will return 1
K = sym('K'); % define symbol K
% try to substitute value 0 for K in sinc(K), this will return NaN
subs(sinc(K), K, 0)
Can I force sinc
to return 1 in the symbolic case (without knowing the value of K
in advance)?
MATLAB Version: 8.0.0.783 (R2012b)
Symbolic Math Toolbox Version 5.9 (R2012b)
回答1:
You are diving 0/0
, i.e. NaN
by direct substitution in sin(pi*K)/(K*pi)
.
This is what sinc
is actually doing to circumvent that.
i = find(x==0);
x(i) = 1;
y = sin(pi*x)./(pi*x);
y(i) = 1;
You can get the same effect by adding a small regularizer to your values:
subs(sinc(K), K, 0+eps)
ans =
1
来源:https://stackoverflow.com/questions/15815613/subssinck-k-0-where-k-is-symbol-will-return-nan-shouldnt-it-be-1