Drawnow on Matlab: в нем хранится фигура или хранится переменная?
Можете ли вы помочь мне по вопросу о DRAWNOW в Matlab?
Когда мы используем drawnow
в Matlab, что происходит внутри?
Он хранит фигуру предыдущего графика, затем строит следующую часть графика на том же рисунке?
ИЛИ он забывает весь предыдущий граф и строит график фактического нового графика (как с предыдущей, так и со следующей частью)?
Оба метода показывают один и тот же эффект: динамический график. Но я хочу точно знать, что происходит внутри.
Спасибо!
1 ответ
drawnow
удостоверяется, что MATLAB прекращает делать все, что делает, и рисует на экране.
Если вы делаете
hold on
for ii=1:1000
plot(ii,rand(1)); % assume complicated maths here
end
MATLAB запустит код и отправит plot
звонки в графический движок. Однако MATLAB слишком занят выполнением цикла для рисования, так как код имеет приоритет над графиком.
Если вы делаете
hold on
for ii=1:1000
plot(ii,rand(1));
drawnow; % Take a break, draw everything that you must before continuing
end
Затем, как говорится в комментарии, вы временно прекращаете выполнение кода, чтобы нарисовать все в графическом конвейере, а затем продолжаете выполнять код.
drawnow
не имеет никакого влияния в том, что фигура хранится или нет, это работа hold on
,
Если вы беспокоитесь о перерисовке всего этого, то убедитесь, что вы посмотрите на set
а также get
методы для графики. С ними вы можете get
xdata
, измените его и set
это снова, гарантируя, что графический движок не перерисовывает / перевычисляет что-либо еще.
Документация для hold
функция: