Я так понимаю, вы имеете в виду, что хотите точно увидеть, как работает ваш код - какие функции вызывают, какие подфункции, когда и как долго они выполняются?
Взгляните на MATLAB Code Profiler . Выполните ваш код следующим образом:
>> profile on -history; MyCode; profile viewer
>> p = profile('info');
p
содержит историю функций. На той же странице справки, на которую я ссылался выше:
Данные истории описывают последовательность функций, введенных и вышедших во время выполнения. Команда profile
возвращает данные истории в поле FunctionHistory
структуры, которую она возвращает. Данные истории представляют собой массив размером 2 на n. Первая строка содержит логические значения, где 0
означает вход в функцию, а 1
означает выход из функции. Вторая строка идентифицирует функцию, которая вводится или выходит из ее индекса в поле FunctionTable
. Этот пример [ниже] читает данные истории и отображает их в командном окне MATLAB.
profile on -history
plot(magic(4));
p = profile('info');
for n = 1:size(p.FunctionHistory,2)
if p.FunctionHistory(1,n)==0
str = 'entering function: ';
else
str = 'exiting function: ';
end
disp([str p.FunctionTable(p.FunctionHistory(2,n)).FunctionName])
end
Вам не обязательно отображать входные и выходные вызовы, как в примере выше; Достаточно просто посмотреть на p.FunctionTable
и p.FunctionHistory
, чтобы увидеть, когда код входит и выходит из функций.