【发布时间】:2011-09-13 23:12:31
【问题描述】:
背景
假设我在 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 引擎可以“看到”它。事实上,我什至可以在使用textscan 读取的字符串上运行eval。
所以我的问题是:
-
为什么会出现上述错误?为什么
foo不运行.m文件?更新:请参阅下面@strictlyrude27 的回答,了解似乎是对这个问题的回答。
-
如果上述方法不起作用。有没有办法让 MATLAB 编译的函数运行 .m 文件,该文件可能在编译原始函数之后发生了变化?
我第二个问题的动机:
我希望能够“更新”作为项目一部分的.m 文件,而无需重新编译整个项目。对此的任何想法将不胜感激。
【问题讨论】:
标签: matlab matlab-deployment matlab-compiler