Как удалить существующий график и построить новый график?

#matlab #matlab-figure

#matlab #matlab-рисунок

Вопрос:

В моей программе я решаю задачу оптимизации с наименьшим квадратом, т. Е. sum_{i} (y_{i}-y_{i}^{market})^2 . В то же время я хочу построить смоделированное y_{i} против y_{i}^{market} . Чтобы запрограммировать его в соответствии с моими потребностями, я определяю OutputFcn во время своей оптимизации и пишу код следующим образом: (Предположим, x представляют x-coord

 figure()
hold on
plot(x,[y_{1},y_{2},...,y_{n}]);
plot(x,[y_{1}^{market},y_{2}^{market},...,y_{n}^{market}]);
  

Когда я запускаю программу, я могу нарисовать новые вычисленные кривые на том же графике. К сожалению, окончательный график сложно просмотреть. Чтобы сделать его видимым для чтения, я хочу удалить кривую (вычисленные значения), полученную на предыдущей итерации, и построить новую кривую (вычисленные значения) на новой итерации на существующем графике. Что я должен сделать с текущим кодом, чтобы удовлетворить мои потребности?

Комментарии:

1. Это не похоже на обычный синтаксис matlab. Вы используете какой-то специальный набор инструментов?

Ответ №1:

Что-то вроде:

 hold on
for iterations
    clf
    % PLOT STUFF
    drawnow
    pause(0.1)
end
  
  • clf очищает рисунок
  • drawnow принудительное рисование на экране
  • pause ненадолго останавливает выполнение, чтобы у вас было время его просмотреть.