背景
假设我在 MATLAB 中编译了以下简单函数
function foo(path_to_m_file)
disp([' Running ' path_to_m_file])
run(path_to_m_file);
end
该函数foo
只获取.m文件的路径并尝试运行它。
foo
但是,当我在编译后实际尝试运行时:
./run_foo.sh $path_to_run_time $path_to_m_file
其中path_to_m_file
是一个简单的.m文件,其中包含如下语句:
a = 2;
我收到以下错误:
Error using ==> run
MATLAB:run:FileNotFound
但是,我知道这foo
得到了正确的路径。例如,如果我尝试用run
以下两行替换该行foo
fID = fopen(conf_file, 'rt');
first_line = textscan(fID, '%s', Inf, 'Delimiter', '\n');
foo
读取文件的相应行.m
。所以.m
文件就在那里,MATLAB 引擎可以“看到”它。事实上,我什至可以eval
在使用textscan
.
所以我的问题是:
为什么我会收到上述错误?为什么不
foo
运行.m
文件?更新:请参阅下面的@strictlyrude27 的回答,了解似乎是这个问题的答案。
如果上述方法不起作用。有没有办法让 MATLAB 编译的函数运行在编译原始函数后可能已更改的.m文件?
我第二个问题的动机:
我希望能够“更新”作为.m
项目一部分的文件,而无需重新编译整个项目。对此的任何想法将不胜感激。