Как построить кривые (число может быть различным) для разных цветов в matlab?

#matlab

#matlab

Вопрос:

Я надеюсь, что кто-нибудь может помочь мне решить следующую проблему кодирования.

Когда я выполняю оптимизацию, которая представляет собой минимизацию по методу наименьших квадратов: Sum(y(modeled)-y(True))^2 , я хочу строить графики после каждой итерации при выполнении оптимизации. Для графиков я хочу изобразить на одном рисунке следующим образом:

  1. ИСТИННЫЙ y (синяя линия)
  2. МОДЕЛИРУЕМЫЙ y вычисляется на каждой итерации. СМОДЕЛИРОВАННЫЙ y, полученный на каждой итерации, должен быть разных цветов, не используйте один и тот же цвет

Однако существует трудность, заключающаяся в том, что я не знаю количество итераций, которые может выполнить программа, это может быть несколько итераций для простой функции или огромные итерации для сложной функции.

Как написать соответствующие коды в matlab?

Я искал, что я могу использовать PlotFcn , чтобы помочь мне строить графики. Но я не думаю, что это полезно, поскольку графики по умолчанию не отображают графики, которые я хочу, что заставляет меня писать коды самостоятельно. Я использую OutputFcn вместо этого. Если возможно выполнить ту же задачу, используя PlotFcn , пожалуйста, дайте мне знать. Спасибо за помощь.

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

1. Если вы просто хотите построить несколько кривых на одном рисунке, просто используйте hold on . Вы также можете содержать несколько фигур. figure(1), plot(...), hold on; а затем второй рисунок figure(2), plot(...), hold on; . Затем вы можете снова построить график на рисунке 1, используя первую команду. Цвета будут автоматически вращаться на удерживаемых фигурах.

Ответ №1:

Вы можете сделать:

 plot(trueY,'b');
hold on;
while(~finished)
   %....generate a modeledY
    plot(modeledY, 'Color', random(1,3));
   %....determine if finished 
end
 

Это не позволяет вам контролировать цвет, который у вас будет, но позволяет вам делать столько, сколько вы хотите. Если вы хотите управлять цветом, проверьте это.

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

1. Мне не нужно контролировать цвет, я хочу, чтобы цвет был другим, когда я строю разные кривые без повторения.