我想知道是否可以在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 -a
和dir
,它们都会显示目录中的隐藏文件:
>> ls -a
. .. .foo.m main.m
>> dir
. .. .foo.m main.m
因此,在默认情况下(至少在Linux中),MATLAB似乎无法找到隐藏的文件。
有没有一种方法可以在MATLAB中运行隐藏的脚本或函数?
编辑:
刚刚意识到在文件开头放一个.
违反了MATLAB的文件命名规则:
来源:指定文件名
"文件名必须以字母开头,并且可以包含字母、数字、,或下划线。">
正如您已经发现的,您不能运行不符合命名约定的m文件。意味着文件不能以.
开头
然而,如果您的意图只是限制对"隐藏"文件的访问,您可以将其作为一个私人函数。参见文档
当您想要限制作用通过将函数存储在名为private的子文件夹。然后,该功能仅可用在私有子文件夹正上方的文件夹中执行功能,或者到由父文件夹中的函数调用的脚本。