matlab: 无法导入包

matlab: cannot import package

可能是一个基本错误,但原因不明。我正在尝试导入一个包,但我收到一条错误消息,提示无法找到或导入它。

首先我把当前目录设置为包的父目录,这样不行。

其次,文档说必须将包的父文件夹添加到 matlab 路径中。我试过了,还是不行。

这不是因为使用 plot 作为包名,因为我在尝试导入 analysis 时遇到了同样的错误。

我能做的是导入使用:import plot.*import analyse.* 然后继续使用包中的函数,但我想使用命名空间(即不使用 .*).

编辑 我在安装的两个版本上都遇到了这个问题:2015b 和 2016a。

答案是,有些违反直觉,您根本不需要调用 importThe docs 指出

The parent of the top-level package folder must be on the MATLAB path.

你的 addpath(pwd) 是做什么的,然后说明(重点是我的):

All references to packages, functions, and classes in the package must use the package name prefix, unless you import the package.

意思是在这个阶段你应该可以打电话给

analyse.testFunc

如果你要 import analyse.testFunc 那么你将能够调用 testFunc 而无需在它前面加上命名空间但是因为你想保留命名空间所以答案是不调用 import 完全没有。