有没有办法如何在没有GUI的情况下从特定行运行MATLAB脚本?

时间:2010-02-27 21:46:21

标签: scripting matlab

有没有办法在不使用GUI的情况下从特定行运行MATLAB脚本。

在GUI中我使用%%

谢谢

3 个答案:

答案 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)

答案 2 :(得分:0)

解决这个问题的一个非常优雅的方法是使用Husam Aldahiyat的goto实现:

https://de.mathworks.com/matlabcentral/fileexchange/26949-matlab-goto-statement

简单地说

goto("your line") 
return

在matlab脚本的开头。