执行脚本但不要在Matlab中触摸工作区

时间:2018-05-15 13:03:40

标签: matlab workspace

我可以执行脚本,但是它不会触及任何当前的工作区变量吗?即把脚本变成功能?

在运行后访问此脚本的变量也是一件好事。

我试过

evalin('myworkspace', 'myscript')

但失败了。

我试过

evalin('caller', 'myscript')

但它改变了变量。

有可能完成吗?

2 个答案:

答案 0 :(得分:0)

如果您有并行计算工具箱,则可以通过将脚本提交到本地群集来实现。 (只是要强调,您的本地群集是您自己的PC。)

E.g。如果你有一个带有

行的脚本SO.m
a = randn;

然后您可以使用

提交并等待
job = batch('SO', 'Profile', 'local');
wait(job);

运行完毕后,您可以使用

加载变量
M = load(job);

然后所有变量都是M

的字段
>> M.a

ans =

    0.4010

答案 1 :(得分:0)

在不改变脚本本身的情况下实现这一目标的简单方法是:

save
myscript
% ... examine variables
clear
load

save将当前工作空间保存到名为“matlab.mat”的MAT文件中。如果您愿意,可以给它一个不同的名称。 load再次加载它。如果您为save指定了其他名称,请为load指定相同名称。