我想知道是否可以在MATLAB中运行 hidden .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
因此,默认情况下,MATLAB似乎无法找到隐藏文件(至少在Linux中)。
有没有办法在MATLAB中启用隐藏的脚本或函数?
编辑:
刚才意识到在文件开头放一个.
违反了MATLAB的文件命名规则:
“文件名必须以字母开头,并且可以包含字母,数字, 或者下划线。“
答案 0 :(得分:1)
正如您已经发现的那样,您无法运行不符合命名约定的m文件。意味着文件不能以.
但是,如果您的目的只是限制对“隐藏”文件的访问,则可以将其设为私有函数。 See Documentation
当您想限制a的范围时,私有函数很有用 功能。您通过将函数存储在一个函数中将其指定为私有函数 子文件夹,名称为private。然后,该功能仅可用 到私有子文件夹正上方的文件夹中的函数,或 到驻留在父文件夹中的函数调用的脚本。