有没有办法在不使用GUI的情况下从特定行运行MATLAB脚本。
在GUI中我使用%%
。
谢谢
答案 0 :(得分:4)
可以写入一个函数,它将读取脚本m文件,跳过行直到需要的行,然后将其余部分写入临时m文件,然后运行它。或者从第1行到第2行。抱歉,目前无法访问Matlab来实现它。可能是明天,除非有人自愿这样做。
<强>更新强>
这是功能:
function runfromto(mfile, lfrom, lto)
% Runs mfile script from line lfrom to line lto.
if nargin < 1
error('No script m-file specified.');
end
if ~strcmp(mfile(end-1:end),'.m')
mfile = [mfile '.m'];
end
if ~exist(mfile,'file')
error(['Cannot access ' mfile])
end
M = textread(mfile,'%s','delimiter','\n');
if nargin < 2
lfrom = 1;
end
if nargin < 3 || lto > numel(M)
lto = numel(M);
end
if lfrom > numel(M)
error(['Script contains only ' num2str(numel(M)) ' lines.'])
end
for k=lfrom:lto
try
evalin('base',M{k})
catch ME
error('RunFromTo:ScriptError',...
[ME.message '\n\nError in ==> ' mfile ' at ' num2str(k) '\n\t' M{k}]);
end
end
更新2 更正了 anon 的以下评论。
答案 1 :(得分:3)
答案似乎是“不”:见
http://blogs.mathworks.com/desktop/2008/01/07/ive-got-something-to-cell-you/
评论27和28。
答案 2 :(得分:0)
解决这个问题的一个非常优雅的方法是使用Husam Aldahiyat的goto实现:
https://de.mathworks.com/matlabcentral/fileexchange/26949-matlab-goto-statement
简单地说
goto("your line")
return
在matlab脚本的开头。