与fzero的matlab错误,方法isfinite是未定义的

时间:2011-06-05 04:30:20

标签: matlab

我只是想为超几何函数找到零

g = @(x) hypergeom((1-x)./2,1,1)

fzero(g,15)
??? Undefined function or method 'isfinite' for input arguments of type 'sym'.

Error in ==> fzero at 333
    elseif ~isfinite(fx) || ~isreal(fx)

这同样的指示在以前工作!! 发生了什么?? 我该怎么办?

1 个答案:

答案 0 :(得分:1)

这个问题可能是由几件事引起的:

  1. 您可能没有符号工具箱。在正确安装MATLAB时,请确保使用许可证进行安装。请记住,对于许多工具箱功能而言,只是从其他来源复制工具箱可能不起作用(另请参阅下面的许可)。

  2. 您的路径可能会以阻止MATLAB查找此功能的方式重新排序或损坏。通过从下拉菜单中选择File-> SetPath,然后单击底部的默认按钮,将路径重置为原始路径。点击保存并再次尝试使用您的代码。

  3. 您的无限期功能被意外删除。我建议只重新安装MATLAB。

  4. 您的许可证不包括符号工具箱您的许可证文件已损坏。如果您没有合适的许可证,MATLAB将尽一切努力阻碍您的MATLAB体验。如果您确定您在MATLAB的工具箱文件夹中有许可证,请确保您有一个名为 symbolic 的文件夹(包含文件!)(可能类似于 “C:\ Program Files \ MATLAB \ R2010a \ toolbox \ symbolic”)。您可以查看您的环境变量LM_LICENSE_FILE并检查您的matlab / license目录中的MATLAB许可证文件,看看是否有任何遗漏(例如license.dat文件)或奇怪的(空文件等)。重新安装也可能对此有所帮助。 Mathworks支持可以在这里为您提供帮助。

  5. 多次安装可能会受到影响。如果您使用和不使用符号工具箱安装了多个版本的MATLAB,则可能会遇到问题。许可证可能会发生冲突,您可以尝试卸载所有内容,然后选择您喜欢的内容。