【问题标题】:Matlab hangs if an undefined variable is requested如果请求未定义的变量,Matlab 会挂起
【发布时间】:2018-06-26 08:02:20
【问题描述】:

如果我打开带有清晰工作区的 Matlab 并输入

a

在命令窗口中返回变量a,即使它不存在,然后Matlab 将'忙碌'大约20 秒,然后它告诉我该变量未定义。在此期间,我无法使用 ctrl+C 中断该过程。

如果我进入

tic; a; toc

然后错误立即出现。

如果我输入

a

在具有空工作区的新脚本中,错误也会立即显示。但是,在一些较大的脚本中,Matlab 会在给出错误之前挂起,就像从命令窗口请求变量时一样。

我认为这可能是许可问题,但我确认 license.dat 已正确放置在 licenses 文件夹中。 Matlab 2017b 和 2018a 都存在这个问题。我正在运行 64 位 Windows 10 企业版 1709。我在同一系统上的 Windows 8 上没有这个问题。系统上全新安装了 Windows 10 和 Matlab。

如何解决这个问题并确保 Matlab 立即返回错误,而不是卡住 20 秒?

【问题讨论】:

  • 嗨,Max,欢迎来到 StackOverflow。不幸的是,我无法在 Windows 7 上重现这一点(使用 R2017b 和 R2018a 测试)。您是否尝试过就此联系 Mathworks 支持?这听起来很像软件错误。
  • 我也无法在 R2018 上重新创建它。您的搜索路径中有多少个目录?运行例如length(strsplit(path,':'))
  • @NickyMattsson 604 个目录;不知道是不是比较大。
  • 并非如此。我认为您应该听从@hbaderts 的建议并联系 Mathworks 或旧的卸载、安装。
  • 谢谢,我已经联系了 Mathworks,会更新。

标签: windows matlab


【解决方案1】:

发生这种情况的原因有很多,当您在命令窗口中键入名称时,MATLAB 会以两种方式使用此名称,

1) 它是变量的名称,因此它会在工作空间中搜索该变量。

2) 是函数或脚本的名称,所以它会搜索MATLAB的PATH中的所有路径。我们知道,MATLAB 的PATH 中有很多文件夹,因此搜索所有文件夹需要很长时间。

您可以通过从 MATLAB 的PATH 中删除不必要的路径来提高速度。

【讨论】:

  • 但考虑到这不会发生在我们其他人身上,他们在路径中拥有同样多的目录,并且在输入 tic; a; toc 时不会发生在 OP 上,但在输入时会发生a,我们可以得出结论,这不是 PATH 问题。
【解决方案2】:

我联系了 Mathworks,解决方案是清空我的首选项文件夹。这解决了它。感谢所有的建议。

【讨论】:

  • 首选项文件夹是什么?是~/.matlab/<version>/吗?
猜你喜欢
  • 2019-08-10
  • 1970-01-01
  • 2019-02-18
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多