在不使用函数的情况下保留matlab脚本中的变量

在不使用函数的情况下保留matlab脚本中的变量,matlab,Matlab,我在matlab中有一个原始脚本,它在当前工作目录中运行一个名为“param_file.m”的参数文件,代码如下: param_file; % this is used for parameter decleration before each run... 运行上面的程序后,我可以保留变量。。。 然后我运行另一个使用前面参数的函数 perform_work(); 现在我想以批处理模式运行上述函数,因此我将上述函数包装为: function doStuffUsingParams(para

我在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();
不幸的是,运行(参数文件名);不会像第一个示例那样返回变量。 任何建议都将不胜感激

谢谢

  • 如果它根本不工作,我的意思是它不返回变量 运行最后一行代码时出错

    perform_work()
    
    您可能需要将第一个函数的地址提供给 正确运行命令。有关更多信息,请查看此示例。或者,您可以将这两个函数放在同一个文件夹中

  • 但如果一切正常且没有错误:

    当您从另一个函数内部运行该函数时,实际上 运行,但您应该知道每个函数都有自己的 工作空间。该功能完成后,工作区将被删除 终止

    运行这行代码后:

    run(param_file_name);
    
    它实际上带来了工作区中的一切

    但是在函数doStuffUsingParams完成工作后 自动清除工作区

  • 我建议您在第二行后使用disp函数查看变量的实际位置:

    function doStuffUsingParams(param_file_name)
    run(param_file_name);
    disp(param1)
    perform_work();
    

  • 在运行后放置断点,我可以看出您不幸弄错了。执行run(…)不会将任何变量返回到工作区中…我的意思是,将Bp放在run上,当跳过时,您将看到函数正在工作,并且变量是不可见的。然后走出这一行,变量仍然应该在那里,你可以通过一个简单的disp测试来测试它。但是在主函数突然通过最后一行之后,所有变量都将无法访问。