Я не знаю, можно ли это сделать правильно. Я никогда не находил способ получить эффект drawnow в середине mex-файла, и я предполагаю, что эта ситуация похожа. Но в любом случае это невероятно грязный взлом: D. Если у вас есть p-файл, вы можете запустить:
profile on;
pfile();
profile viewer;
и получите представление о том, какие функции вызывает pfile (). Если код вызывает какие-либо встроенные функции (например, disp) или любую функцию, к исходному коду которой у вас есть доступ, вы можете создать свою собственную версию этого файла далее по пути, который будет вызываться p-файлом, например,
function disp(X)
if (toc > 5)
drawnow;
tic;
end
builtin('disp', X);
Это будет вызывать drawnow не чаще, чем раз в 5 секунд, хотя это будет бесполезно, если не вызывать disp регулярно. Если вы не можете найти встроенную функцию для переопределения, вы можете использовать любую другую функцию и просто вставить часть drawnow вверху, например:
function primes(N)
if (toc > 5)
drawnow;
tic;
end
The rest of the original primes.m here.