运行隐藏的.m文件



我想知道是否可以在MATLAB中运行隐藏的.m文件。采用以下MWE:

我的工作目录包含两个文件:main.m.foo.m,这是隐藏的(在Linux中,隐藏的文件前面有一个.)

dir
|
+-- main.m
+-- .foo.m (hidden)

文件.foo.m包含:

disp('bar');

并且main.m包含通过run命令对.foo.m的调用

run('.foo.m');

当我运行main.m时,MATLAB抛出一个错误:

>> main
Error using run (line 61)
.foo.m not found.
Error in main (line 1)
run('.foo.m');

但是,如果我运行ls -adir,它们都会显示目录中的隐藏文件:

>> ls -a
.  ..  .foo.m  main.m
>> dir
.       ..      .foo.m  main.m  

因此,在默认情况下(至少在Linux中),MATLAB似乎无法找到隐藏的文件。

有没有一种方法可以在MATLAB中运行隐藏的脚本或函数?


编辑:

刚刚意识到在文件开头放一个.违反了MATLAB的文件命名规则:

来源:指定文件名

"文件名必须以字母开头,并且可以包含字母、数字、,或下划线。">

正如您已经发现的,您不能运行不符合命名约定的m文件。意味着文件不能以.开头

然而,如果您的意图只是限制对"隐藏"文件的访问,您可以将其作为一个私人函数。参见文档

当您想要限制作用通过将函数存储在名为private的子文件夹。然后,该功能仅可用在私有子文件夹正上方的文件夹中执行功能,或者到由父文件夹中的函数调用的脚本。

最新更新