我在matlab中有一个原始脚本,它使用以下代码在当前工作目录中运行一个名为“param_file.m”的参数文件:
param_file; % this is used for parameter decleration before each run...
运行上面的内容后,我得保留变量...... 然后我运行另一个使用前面参数的函数。
perform_work();
现在我想以批处理模式运行上面的代码,所以我把上面的函数包装成:
function doStuffUsingParams(param_file_name)
run(param_file_name);
perform_work();
不幸的是,运行(param_file_name);不像第一个例子那样返回变量。 任何建议都会非常感激。
谢谢!
答案 0 :(得分:1)
如果它根本不起作用,我的意思是它不会返回变量 并且在运行代码的最后一行时出错
perform_work()
您可能需要将第一个函数的地址赋予 正确运行运行命令。查看此page上的示例以获取更多信息。或者您可以将两个功能放在同一个文件夹中。
但如果一切正常并且没有错误:
当你从另一个函数内部运行它时,它实际上是 运行,但你应该知道每个功能都有自己的功能 工作区。功能完成后,工作区将被删除 终止。
运行此行代码后:
run(param_file_name);
它实际上带来了工作区中的所有内容。
但是功能 doStuffUsingParams 完成后才能使用它 自动清除工作区。
我建议您在第二行之后使用 disp 函数来查看变量实际存在:
function doStuffUsingParams(param_file_name)
run(param_file_name);
disp(param1)
perform_work();