Перейти к содержанию
    

Циклический вывод графики в MATLAB

Я использую функцию Plot. Она выводит график. А у меня характеристики среды постоянно меняются и мне нужно постоянно выводить новый график. Пишу

 

for k=1:10

%%%%%%%

задание функции, которая меняется в зависимости от k

%%%%%%%

plot(f(k))

end;

 

Он сначала висит, а потом рисует только последний вариано при k=10. Как решить мою проблему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы хотите видеть динамическое изменение графика? Тое сть как он меняется с каждой итерацией СТИРАЯ предыдущий график? ТОгда проблема в том что комп очень быстрый ))) Он обсчитывае шгораздо быстрее чем выводит на экран. Тогда надо вставить функцию задержки (не помню какая, может sleep или wait какой нить) на тот количество времени, какое удобно. А если сразу вывести 10 графиков то надо добавить hold on после plot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте так:

 

for k=1:10
%%%%%%%
задание функции, которая меняется в зависимости от k 
%%%%%%%
temp(k)=f(k);
plot(temp)
end;

 

Естественно график вы увидите после всех итераций цикла. Так что может имеет смысл вынести plot вне цикла.

Изменено пользователем shreck

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

for k=1:10

hold on

plot(f(k))

drawnow;

end;

тока без "hold on" (скорее всего вопрошающему не нужен режим наложения)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я использую функцию Plot. Она выводит график. А у меня характеристики среды постоянно меняются и мне нужно постоянно выводить новый график. Пишу

 

for k=1:10

%%%%%%%

задание функции, которая меняется в зависимости от k

%%%%%%%

plot(f(k))

end;

 

Он сначала висит, а потом рисует только последний вариано при k=10. Как решить мою проблему?

Не совсем понятно, что значит постоянно меняются характеристики среды. Вы с каким приложением вообще то работаете, только с М-файлами? Есть такой опыт рисования. Из М-файла запускалась модель Симулинка, данные из модели сохранялись в рабочую область. Потом в другом или этом же М-файле строилась фигура и в ней в цикле рисовался график с помощью команды line(..). Скорость вывода новой точки на графике регулировалась командой pause(..).

Судя по вашему примеру у вас каждый раз рисуется новый plot(f(k)). В начале можно просчитать все данные, а потом построить график, сохранив данные например в массив.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще то графика у матлаба отличная. Но вот с динамическим выводом данных от пользователя не все хорошо. В глазах рябит. Или я может чего-то не знаю. Если есть полезная информация по этому поводу, буду рад. Много дельного можно найти на http://matlab.exponenta.ru

Изменено пользователем Dimka_U

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

альтернативный вариант:

--------------------

plot()...

pause(n);

 

--------------------

где n- время задержки, я использую 0.5-0.3 вполне хватает.

 

 

Вообще то графика у матлаба отличная. Но вот с динамическим выводом данных от пользователя не все хорошо. В глазах рябит. Или я может чего-то не знаю. Если есть полезная информация по этому поводу, буду рад. Много дельного можно найти на http://matlab.exponenta.ru

 

Что следует понимать под динамическим выводом?? С какой частотой надо отображать информацию??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что следует понимать под динамическим выводом?? С какой частотой надо отображать информацию??

 

Под динамическим выводом я понимаю следующее. График функции можно постороить сразу весь используя "плот". Данные же в матлабе сохраняются в виде массива. Так вот под динамическим выводом я понимаю вывод графика по элементно в цикле. Если график простой, то это конечно не рационально, но если что-нибудь заковыристое и это необходимо исследовать, а модель посчитана с очень маленьким шагом я делаю именно так. При этом можно регулировать скорость вывода, колличество выводимых точек и т.д. Когда выводиться новая точка у меня возникло ощущение, что матлаб как бы перерисовывает внутреннюю часть "плота", в которой выводиться график и он как бы мигает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...