2

MATLABsinc(0)将按应有的方式返回 1。但是sinc(K)一些K用零值代替的符号将返回NaN.

以下代码说明了上述内容:

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) 

我可以sinc在符号情况下强制返回 1(事先不知道 的值K)吗?

MATLAB Version: 8.0.0.783 (R2012b)
Symbolic Math Toolbox  Version 5.9  (R2012b)
4

1 回答 1

2

您正在潜水0/0,即NaN直接替换为sin(pi*K)/(K*pi).

sinc实际上是为了规避这一点。

i = find(x==0);                                                              
x(i) = 1;                                
y = sin(pi*x)./(pi*x);                                                     
y(i) = 1; 

您可以通过向您的值添加一个小的正则化器来获得相同的效果:

subs(sinc(K), K, 0+eps) 
ans =

     1
于 2013-04-04T16:21:46.223 回答