Есть ли способ, как запустить скрипт MATLAB из конкретной строки без графического интерфейса? - PullRequest
3 голосов
/ 28 февраля 2010

Есть ли способ запустить скрипт MATLAB из определенной строки без использования графического интерфейса.

В GUI я использую %%.

Спасибо

Ответы [ 3 ]

4 голосов
/ 28 февраля 2010

Можно написать функцию, которая будет считывать m-файл сценария, пропускать строки до тех пор, пока не будет запрошена одна, а остальные записывать во временный m-файл, а затем запускать его. Или из строки1 в строку2. Извините, сейчас нет доступа к Matlab для его реализации. Может быть завтра, если кто-то не захочет это сделать.

UPDATE

Вот функция:

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 .

3 голосов
/ 28 февраля 2010

Кажется, ответ «нет»: см.
http://blogs.mathworks.com/desktop/2008/01/07/ive-got-something-to-cell-you/
комментарии 27 и 28.

0 голосов
/ 29 января 2018

Довольно элегантный способ решить эту проблему - использовать goto реализацию Husam Aldahiyat:

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

Проще говоря

goto("your line") 
return

в начале вашего сценария Matlab.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...