我可以执行脚本,但是它不会触及任何当前的工作区变量吗?即把脚本变成功能?
在运行后访问此脚本的变量也是一件好事。
我试过
evalin('myworkspace', 'myscript')
但失败了。
我试过
evalin('caller', 'myscript')
但它改变了变量。
有可能完成吗?
答案 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
指定相同名称。