我刚刚更新到 Matlab 2014a 终于。我有大量使用符号数学工具箱的脚本,这些脚本过去工作正常,但现在遇到以下错误:
Error using mupadmex
Error in MuPAD command: Division by zero. [_power]
Evaluating: symobj::trysubs
我无法在这里发布我的实际代码,但这是一个简化的示例:
syms f x y
f = x/y
results = double(subs(f, {'x','y'}, {1:10,-4:5}))
在我的实际脚本中,我将两个 23x23 网格的值传递给一个复杂的函数,并且我事先不知道其中哪个值将导致被零除。我在谷歌上找到的所有内容都只是告诉我不要尝试进行会导致除以零的评估。没有帮助!对于那些无法评估的数据,我曾经得到“inf”(或“NaN” - 我记不清了),当我对这些数据执行后续步骤时,我可以轻松过滤它们。
有谁知道如何强制 Matlab 2014a 回到该行为而不是抛出错误?或者我注定要永远运行旧版本的 Matlab,或者要经历改变方法以避免被零除的巨大痛苦?
您可以定义一个具有您想要的行为的除法,此除法函数返回 inf 以除零:
mydiv=@(x,y)x/(dirac(y)+y)+dirac(y)
f = mydiv(x,y)
results = double(subs(f, {'x','y'}, {1:10,-4:5}))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)