我可以执行脚本,但让它不接触任何当前的工作区变量吗? 即将脚本转换为函数?
此外,最好在运行后访问此脚本的变量。
我试过了
evalin('myworkspace', 'myscript')
但它失败了。
我试过了
evalin('caller', 'myscript')
但它改变了变量。
有可能完成吗?
在不更改脚本本身的情况下完成此操作的简单方法是:
save
myscript
% ... examine variables
clear
load
save
将当前工作区保存到名为"matlab.mat"的MAT文件中。如果您愿意,可以给它一个不同的名称。load
再次加载它。如果为save
指定了不同的名称,请为load
指定相同的名称。
如果您有并行计算工具箱,则可以通过将脚本提交到本地集群来实现。(只是为了强调,您的本地群集是您自己的电脑。
例如,如果您有带有该行的脚本SO.m
a = randn;
然后,您可以使用提交并等待
job = batch('SO', 'Profile', 'local');
wait(job);
完成运行后,您可以使用
M = load(job);
那么所有的变量都是M
的字段。
>> M.a
ans =
0.4010