Вы знакомы только с этим синтаксисом Tic Toc:
tic; someCode; elapsed = toc;
Но есть и другой синтаксис:
start = tic; someCode; elapsed = toc(start);
Второй синтаксис выполняет те же измерения времени, но позволяет вамвозможность одновременного запуска более одного таймера секундомера.Вы присваиваете вывод tic переменной tStart, а затем используете эту же переменную при вызове toc.MATLAB измеряет время, прошедшее между тиком и связанной с ним командой toc, и отображает время, прошедшее в секундах.Этот синтаксис позволяет синхронизировать несколько одновременных операций, включая время вложенных операций ( документация по Matlab для Tic Toc ).
Вот как это использовать в вашем случае.Допустим, это ваш код:
for i = 1:M
someCode;
end
Вставьте тик и ток следующим образом:
startLoop = tic;
for i = 1:N
startIteration = tic;
someCode;
endIteration = toc(startIteration);
end
endLoop = toc(startLoop);
Вы также можете использовать приведенный выше синтаксис для создания вектора, для которого i-й элементявляется измерением времени для i-й итерации.Как это:
startLoop = tic;
for i = 1:N
startIteration(i) = tic;
someCode;
endIteration(i) = toc(startIteration(i));
end
endLoop = toc(startLoop);