【问题标题】:Class folder not accepted into Matlab's path类文件夹不接受到 Matlab 的路径中
【发布时间】:2019-01-10 15:55:44
【问题描述】:

我正在尝试使用Gramm Toolbox 进行一些高级数据绘图,但是我似乎无法完成一个简单的“hello world”绘图。

也就是说,当我在其 examples.m 文件中运行任何代码单元时,我遇到了这个与路径相关的错误:

Undefined function or variable 'parse_aes'.
Error in gramm (line 177)
            obj.aes=parse_aes(varargin{:});

尽管已将 Gramm 文件夹(c:\Program Files\MATLAB\R2016a\toolbox\gramm\; 它是 @gramm 文件夹的父文件夹)递归地添加到 Matlab 的路径中,即包含其所有子目录。根据自述文件,这是唯一需要的安装步骤。

我猜问题出在类文件夹/定义上,但不幸的是我对面向对象编程一无所知。

我正在运行 Matlab 2016a,根据工具箱要求安装了统计信息和曲线拟合工具箱。

谁能建议我可以尝试的其他东西? (代码作者本人似乎没有直接/及时的支持)

【问题讨论】:

  • 谢谢,但我已经将工具箱文件夹(及其子文件夹,其中包含相关的 parse_aes.m 文件)添加到路径中。

标签: matlab plot


【解决方案1】:

您不想将所有目录递归地添加到路径中,只需添加包含@gramm 类文件夹的顶级目录即可。

如果添加子目录,则在类定义文件中,@gramm/gramm.m 将存在于路径中,当您调用 gramm@gramm 文件夹中定义的所有其他方法(和 @ 987654326@) 不会与该类实例正确关联。

如果你重新阅读安装说明,它并没有提到添加目录递归,只是添加顶级目录:

...将包含@gramm 类文件夹的文件夹添加到您的Matlab 路径(使用GUI 或addpath()

【讨论】:

  • 我明白了——也许只是我过于热心将所有东西都添加到路径中。但是,在从路径中删除它们并按照您所说的仅添加顶级目录之后,运行示例仍然会产生相同的路径错误!
  • 您是否尝试过重新启动 MATLAB 或运行 clear all; clear classes;?有时类定义在 MATLAB 会话中可能非常棘手。
  • 我发现了问题所在。我想我最好将其描述为对我自己问题的回答。
【解决方案2】:

即使根据 Suever 的回复修复了路径(需要非递归添加),我仍然遇到同样的错误。

提示是 Matlab 重新启动后显示的消息:

Warning: Found directory Private in directory c:\Program Files\MATLAB\R2016a\toolbox\gramm\@gramm. Private
directory names must be spelled 'private'. 

尚不清楚为什么子文件夹以大写 P 命名,因为下载的 ZIP 使用小写字母。无论如何,在将该子文件夹重命名为“private”之后,所有示例都按预期工作。

【讨论】:

  • 你改名了吗?因为如果你看工具箱代码,它是private
  • 不,我刚刚解压缩了下载的 ZIP - 不知道大写字母 P 是如何进入其中的!
  • 再次感谢您的参与!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多