运行 隐藏.m 文件
Run hidden .m file
我想知道是否可以在 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 中启用 运行ning 隐藏脚本或函数?
编辑:
刚刚意识到在文件开头放一个.
违反了MATLAB的文件命名规则:
Source: Specify File Names
"File names must start with a letter, and can contain letters, digits,
or underscores."
如您所知,您不能 运行 不符合命名约定的 m 文件。这意味着文件不能以 .
开头
但是,如果您的目的只是限制对 "hidden" 文件的访问,您可以将其设为私有函数。 See Documentation
Private functions are useful when you want to limit the scope of a
function. You designate a function as private by storing it in a
subfolder with the name private. Then, the function is available only
to functions in the folder immediately above the private subfolder, or
to scripts called by the functions that reside in the parent folder.
我想知道是否可以在 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 中启用 运行ning 隐藏脚本或函数?
编辑:
刚刚意识到在文件开头放一个.
违反了MATLAB的文件命名规则:
Source: Specify File Names
"File names must start with a letter, and can contain letters, digits, or underscores."
如您所知,您不能 运行 不符合命名约定的 m 文件。这意味着文件不能以 .
但是,如果您的目的只是限制对 "hidden" 文件的访问,您可以将其设为私有函数。 See Documentation
Private functions are useful when you want to limit the scope of a function. You designate a function as private by storing it in a subfolder with the name private. Then, the function is available only to functions in the folder immediately above the private subfolder, or to scripts called by the functions that reside in the parent folder.