Matlab 其中K是符号的subs(sinc(K),K,0)将返回NaN。不应该';不是一点吗?
MATLABMatlab 其中K是符号的subs(sinc(K),K,0)将返回NaN。不应该';不是一点吗?,matlab,symbolic-computation,Matlab,Symbolic Computation,MATLABsinc(0)将返回1。但是某个符号的K的sinc(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(
sinc(0)
将返回1。但是某个符号的K
的sinc(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
的值)
你正在潜入
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
问题似乎是
sinc
函数中的find
:find(sym('K'))
返回空数组。(与MATLAB和Sym数学工具箱版本相同)
subs(sinc(K), K, 0+eps)
ans =
1