在尝试使用 MATLAB 的内置函数或已安装的​工具箱时,为什么会收​到“未定义函数或变量​”错误?

447 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 19 de Feb. de 2014
Editada: MathWorks Support Team el 29 de Jun. de 2023
在使用 MATLAB 的内置函数时,我收到以下错误:
ERROR: ???未定义函数或变量“<function name>”。

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 20 de Feb. de 2023
Editada: MathWorks Support Team el 29 de Jun. de 2023
如果您无法使用 MATLAB 的内置函数或相关工具箱,请确保已安装了函数文件。
 
如果您知道函数属于哪个工具箱,请通过在您的 MATLAB 命令行窗口中运行以下命令来验证是否已安装该工具箱,以及该工具箱的版本是否与 MATLAB 版本匹配:
ver
如果您没有看到工具箱,但您认为已安装它,请尝试将 MATLAB 路径重置为默认值。MATLAB 将工具箱信息存储在缓存文件中。您需要首先更新此缓存,然后重置路径。为此,请执行以下操作:
 
1.转到“文件”(File) 菜单,再到“预设”(Preferences)
2.转到“常规”(General) 标题。点击“更新工具箱路径缓存”(Update Toolbox Path Cache) 按钮,然后按“确定”(OK)。
3.转到“文件”(File) 菜单,再到“设置路径”(Set Path)
4.点击“默认值”(Default),按“确定”(OK) 进行更改,然后点击“保存”(Save),最后点击“关闭”(Close)。
(如果您向 MATLAB 中添加了任何自定义路径,稍后您将需要恢复它们)
 
再次运行“ver”来查看是否已安装工具箱。如果没有,您可能需要重新安装该工具箱才能使用此函数。有关安装工具箱的详细信息,请参阅相关解决方案:“如何将其他工具箱安装到现有的 MATLAB 中”。
 
在 ver 显示您的工具箱之后,运行以下命令来查看您是否可以找到该函数:
which -all <函数的名称>
将 <函数的名称> 替换为函数的名称。应向您显示函数文件的路径。如果您获得“未找到 <函数的名称>”的消息,则您可能需要重新安装该工具箱才能使用此函数。
 
注意:如果该函数的多个实例不在 $MATLABROOT\toolbox 子文件夹中(其中 $MATLABROOT 是您的计算机上的安装文件夹),则您在运行内置函数时可能会遇到问题。有关详细信息,请参阅相关解决方案:“在使用自定义函数时,为什么会收到‘未定义函数或变量’”。
 
如果您收到错误消息“没有可用的许可证(license)”,则存在与许可相关的问题阻止您使用该函数。要查找发生的错误,您可以使用以下命令:
license checkout <toolbox_license_key_name>
将 <toolbox_license_key_name> 替换为包含您的函数的工具箱的合适键名称。要查找许可证键名称,您将需要查看许可证文件中的 INCREMENT 行。有关如何查找许可证文件的信息,请参阅相关解决方案:1-63ZIR6 -“MATLAB 的许可证文件位于何处?”
 
所有工具箱的许可证键名称都位于 license.dat 文件中的每个 INCREMENT 标签之后。例如:
INCREMENT MATLAB MLM 17 00-jan-0000 0 B454554BADECED4258 \
HOSTID=123456 SN=123456
如果您的 license.dat 文件没有 INCREMENT 行,请与您的许可证管理员联系来获取这些 INCREMENT 行。
例如,要测试 Symbolic Math Toolbox 的许可,可以运行以下命令:
license checkout Symbolic_Toolbox
正确的测试将产生结果“ANS=1”,否则将出现许可证管理器错误。您可以在下方链接中查找许可证管理器错误来解决错误:
 
 
或在下面与安装支持团队联系来解决错误:
 
在与支持团队联系时,提供您的许可证编号、您的 MATLAB 版本、您使用的函数和许可证管理器错误(如果适用)。

Más respuestas (0)

Categorías

Más información sobre 启动和关闭 en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!