【问题标题】:MATLAB search path errorMATLAB 搜索路径错误
【发布时间】:2014-12-01 17:40:28
【问题描述】:

这让我感到莫名其妙。我有控制系统工具箱,当我尝试使用 ss 函数时,我收到以下错误:

类 'ss' 包含解析错误或无法在 MATLAB 的搜索路径中找到,可能 被另一个同名文件隐藏。

当我在命令提示符中执行help ss 时,它似乎拉出了ss 命令的帮助页面。你有什么想法?我没有任何其他名为ss 的文件。

有没有办法从控制系统工具箱中指定ss 的使用。这很奇怪,我想我以前从未见过。我试图搜索这个,但所有结果似乎都是关于 MATLAB 面向对象编程的。任何帮助将不胜感激。

这是我在命令提示符中使用help ss 时得到的结果:

ss构造状态空间模型或将模型转换为状态空间。

构造:SYS = ss(A,B,C,D)创建一个对象SYS,表示连续- 时间状态空间模型

....
....

【问题讨论】:

  • 您的工作区中是否有与ss 同名的变量?尝试执行clear ss,然后再次尝试该命令。该消息(不幸的是)也没有告诉您工作区中具有相同名称的变量。这也可以遮盖状态空间函数。
  • 我不这么认为...我在笔记本电脑上使用相同的数据运行了相同的脚本,但没有任何问题。它真的很紧张,所以我把它移到了一个 linux 桌面上,这就是我开始遇到问题的时候。不过,我会仔细检查变量名。谢谢
  • 试试which ss -all,看看它是否找到了不应该的东西。其他要检查的事项:如果您尝试使用帮助文件中的ss 的简单示例之一,是否会出现相同的错误? ver control 在笔记本电脑和台式机系统上的结果是否相同?
  • 这不是一个解决方案,而是一个检查:如果您将 ss 的副本(同名!)放在当前目录中,然后尝试使用该命令会发生什么?
  • 我做了一个清晰的 ss 并且问题仍然存在,因此它不是干扰函数的变量。这是which ss -all/usr/local/mathworks_r2013b/toolbox/control/control/@ss/ss.m % ss constructor /usr/local/mathworks_r2013b/toolbox/control/control/@DynamicSystem/ss.m % DynamicSystem method /usr/local/mathworks_r2013b/toolbox/ident/ident/@idParametric/ss.m % idParametric method /usr/local/mathworks_r2013b/toolbox/signal/signal/@dfilt/ss.m % dfilt method的结果

标签: linux matlab


【解决方案1】:

感谢所有故障排除建议,我能够找出问题所在。显然,执行 matlab 安装的系统管理员有一个修改过的 pathdef,它搞砸了工具箱的搜索路径。当我清除 matlab 路径并使用默认的 matlab 搜索路径时,我的所有问题都消失了。非常感谢你们的帮助!

【讨论】:

    【解决方案2】:

    我遇到了同样的问题(Matlab R2013a)。我试图从我自己的classdef 类中调用ss。我收到了这个错误:

    Error using ss
    The class 'ss' contains a parse error or cannot be
    found on MATLAB's search path, possibly shadowed by
    another file with the same name.
    

    问题是我自己的班级被称为StateSpaceModel,而ss的定义如下:

    classdef ss < numlti & StateSpaceModel
    

    所以,当我在默认的 Matlab 路径中时,ss 继承了名为 StateSpaceModel 的正确 Matlab 类。但是当我在文件夹中时,ss 试图继承我自己的同名类。

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 2017-01-15
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多