Функция Matlab onCleanup не выполнена

Я столкнулся со следующей проблемой в MATLAB R2013a, которая по какой-то причине, которую я не понимаю, не вызывает функцию onCleanup, когда в функции определен таймер (включая TimerFcn).

Я добавляю два минимальных примера, показывающих проблему:

сначала рабочая версия, где процедура очистки вызывается, как и ожидалось:

function mytest(time)
  t = timer();
  myclean = onCleanup(@() disp('function ended'));
  pause(time);
end

и теперь ошибочная версия, в которой очистка не вызывается (ни когда функция заканчивается нормально, ни когда нажаты ctrl + c)

function mytest2(time)
  t = timer();
  t.TimerFcn = @(o,s)disp(' ... waiting for some time'); 
  myclean = onCleanup(@() disp('function ends'));
  pause(time);
end

Я не смог найти никаких намеков в документации, почему таймер или, более конкретно, определение TimerFcn изменило бы выполнение кода очистки?

Ответы на вопрос(2)

Ваш ответ на вопрос