MATLAB中是否有一个命令可以自动重启它(在通过'quit'关闭它之后)并使用一组不同的变量运行相同的脚本? 例如,如果simpleSum.m是代码:
a=1;
b=2;
abSum=a+b
quit
%some command here to restart matlab with (say) a=3 and b=5;
%and then with a=5, b=-2; Then with a=7, b=-5 and so on
答案 0 :(得分:0)
你可以先打开matlab的新会话 - 使用system() 然后你可以在原来的会话上打电话退出
答案 1 :(得分:0)
我认为你应该使用函数而不是脚本。然后你可以轻松地将初始参数传递给它:
function simpleSum(a, b)
% Use defaults when called without arguments
if nargin < 2
a = 1;
b = 2;
end
完成计算并重新启动Matlab后,您可以执行以下操作:
% Calculate 'a' and 'b' for the next iteration
cmd = sprintf('simpleSum(%d, %d)', a, b); % Assemble function call
system(['matlab -r "' cmd '"&']); % Start new Matlab instance
quit; % Quit current session
确保添加&#39;&amp;&#39;你身后的Matlab调用,这样它就会在后台启动。使用&#34; -r&#34;你可以指定一个在Matlab启动时应该执行的命令。
编辑: 这是我测试的完整文件(simpleSum.m):
function simpleSum(a, b)
% Use defaults when called without arguments
if nargin < 2
a = 1;
b = 2;
end
fprintf('Running simpleSum with a=%d and b=%d.\n', a, b);
pause(5);
c = a + b; % Implement your code here
a = b;
b = c;
% Calculate 'a' and 'b' for the next iteration
cmd = sprintf('simpleSum(%d, %d)', a, b); % Assemble function call
system(['matlab -r "' cmd '"&']); % Start new Matlab instance
quit; % Quit current session
只需使用&#34; simpleSum&#34;在Matlab命令窗口启动它,它应该重复重启Matlab,直到用Ctrl + C手动停止。