Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Циклический вывод графики в MATLAB
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
michael34
Я использую функцию Plot. Она выводит график. А у меня характеристики среды постоянно меняются и мне нужно постоянно выводить новый график. Пишу

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

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

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


Естественно график вы увидите после всех итераций цикла. Так что может имеет смысл вынести plot вне цикла.
Сергей Б
for k=1:10
hold on
plot(f(k))
drawnow;
end;
Doka
Цитата(Сергей Б @ Sep 12 2006, 13:49) *
for k=1:10
hold on
plot(f(k))
drawnow;
end;

тока без "hold on" (скорее всего вопрошающему не нужен режим наложения)
michael34
Спасибо за помощь smile.gif Разобрался)))
Dimka_U
Цитата(michael34 @ Sep 12 2006, 10:44) *
Я использую функцию Plot. Она выводит график. А у меня характеристики среды постоянно меняются и мне нужно постоянно выводить новый график. Пишу

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

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

Не совсем понятно, что значит постоянно меняются характеристики среды. Вы с каким приложением вообще то работаете, только с М-файлами? Есть такой опыт рисования. Из М-файла запускалась модель Симулинка, данные из модели сохранялись в рабочую область. Потом в другом или этом же М-файле строилась фигура и в ней в цикле рисовался график с помощью команды line(..). Скорость вывода новой точки на графике регулировалась командой pause(..).
Судя по вашему примеру у вас каждый раз рисуется новый plot(f(k)). В начале можно просчитать все данные, а потом построить график, сохранив данные например в массив.
Dimka_U
Вообще то графика у матлаба отличная. Но вот с динамическим выводом данных от пользователя не все хорошо. В глазах рябит. Или я может чего-то не знаю. Если есть полезная информация по этому поводу, буду рад. Много дельного можно найти на http://matlab.exponenta.ru
-=Vitaly=-
[/quote]
альтернативный вариант:
--------------------
plot()...
pause(n);

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


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


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

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