7

在此处输入图像描述

在运行 unitTester 文件之前,我总是需要这样做。我不明白为什么需要这样做。这是什么意思?为什么"Add to Path > Selected Folders and Subfolders"还不够?

[更新] 这可能是问题所在内核以不同的技术编程,其中文件名相同。我需要确保在每种情况下只使用某些文件。最简单的方法是在这里使用一个包来不弄乱命名空间吗?

4

3 回答 3

6

MATLAB 在其搜索路径上搜索 m 文件,您可以使用path命令显示它。如果您在 MATLAB 路径上有多个具有相同基本名称的 m 文件(即扩展名之前的文件名部分,不包括目录),则 MATLAB 只能执行路径上第一个出现的 m 文件。

您可以使用addpathrmpath函数来动态修改路径。例如,您可以在测试运行脚本中自动添加相关目录。请注意,addpath将新路径添加到路径列表的头部,以确保它优先于现有条目。

防止此类名称冲突的另一种方法是

编辑:要将目录转换为包,请执行以下操作:

  • +在其名称的开头添加一个。
  • 确保将目录的父目录放在 MATLAB 路径上。
  • 更新对包中函数的所有调用,方法是预先添加packagename.它们或在调用之前包含包内容 ( import packagename.*)。

一般来说,我更喜欢包而不是动态路径修改,因为它们更容易使用。请注意,您可以嵌套包(即my_matlab_files/+mypkg/+nested/foo.m)。

于 2013-04-11T05:58:14.670 回答
0

我在使用 Matlab r2015a 的 OS X 10.10.3 上遇到了同样的问题。

我有我的文件~/electrochemistry/Matlab/

不知何故将最后一个文件夹重命名为小写解决了这个问题。在进行故障排除时,我注意到 Matlab 正在寻找~/electrochemistry/matlab/,但找不到它正在寻找的内容(即我正在运行的 .m 文件)

所以现在我正在工作~/electrochemistry/matlab/并且问题已经解决了

于 2015-06-28T18:07:54.387 回答
0

更改您的源代码名称,因为它的名称与 Matlab 的源代码相同

于 2021-06-06T06:37:32.773 回答