Итак, я недавно начал использовать встроенный в Matlab профилировщик на регулярной основе, и я заметил, что, хотя он обычно отлично показывает, какие строки занимают больше всего времени, иногда он говорит мне большоекусок времени используется в операторе end
цикла for
.
Теперь, видя, что такая строка используется только для обозначения конца цикла, я не могу представить, как этоможет использовать что угодно, кроме обычного объема обработки.
Я видел конкретную версию этого вопроса, задаваемую на matlab central , но консенсус, похоже, не был достигнут.
РЕДАКТИРОВАТЬ: Вот минимальный пример этой проблемы:
for i =1:1000
x = 1;
x = [x 1];
% clear x;
end
Даже если вы раскомментируете clear
, строка end
по-прежнему занимает много вычислений (около 20%)и clear
фактически увеличивает абсолютный объем вычислений, выполняемых конечной строкой.