реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Циклический вывод графики в MATLAB, нужно постоянно выводить график в матлабе
michael34
сообщение Sep 12 2006, 07:44
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 24-01-06
Пользователь №: 13 541



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

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

Он сначала висит, а потом рисует только последний вариано при k=10. Как решить мою проблему?
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Sep 12 2006, 09:19
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Вы хотите видеть динамическое изменение графика? Тое сть как он меняется с каждой итерацией СТИРАЯ предыдущий график? ТОгда проблема в том что комп очень быстрый ))) Он обсчитывае шгораздо быстрее чем выводит на экран. Тогда надо вставить функцию задержки (не помню какая, может sleep или wait какой нить) на тот количество времени, какое удобно. А если сразу вывести 10 графиков то надо добавить hold on после plot
Go to the top of the page
 
+Quote Post
shreck
сообщение Sep 12 2006, 09:37
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



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

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


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

Сообщение отредактировал shreck - Sep 12 2006, 09:40
Go to the top of the page
 
+Quote Post
Сергей Б
сообщение Sep 12 2006, 09:49
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 14-04-06
Из: Russia, Orel
Пользователь №: 16 115



for k=1:10
hold on
plot(f(k))
drawnow;
end;
Go to the top of the page
 
+Quote Post
Doka
сообщение Sep 12 2006, 16:32
Сообщение #5


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(Сергей Б @ Sep 12 2006, 13:49) *
for k=1:10
hold on
plot(f(k))
drawnow;
end;

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


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
michael34
сообщение Sep 13 2006, 06:06
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 24-01-06
Пользователь №: 13 541



Спасибо за помощь smile.gif Разобрался)))
Go to the top of the page
 
+Quote Post
Dimka_U
сообщение Sep 16 2006, 00:57
Сообщение #7





Группа: Новичок
Сообщений: 4
Регистрация: 16-09-06
Пользователь №: 20 438



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

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

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

Не совсем понятно, что значит постоянно меняются характеристики среды. Вы с каким приложением вообще то работаете, только с М-файлами? Есть такой опыт рисования. Из М-файла запускалась модель Симулинка, данные из модели сохранялись в рабочую область. Потом в другом или этом же М-файле строилась фигура и в ней в цикле рисовался график с помощью команды line(..). Скорость вывода новой точки на графике регулировалась командой pause(..).
Судя по вашему примеру у вас каждый раз рисуется новый plot(f(k)). В начале можно просчитать все данные, а потом построить график, сохранив данные например в массив.
Go to the top of the page
 
+Quote Post
Dimka_U
сообщение Sep 16 2006, 00:58
Сообщение #8





Группа: Новичок
Сообщений: 4
Регистрация: 16-09-06
Пользователь №: 20 438



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

Сообщение отредактировал Dimka_U - Sep 16 2006, 01:08
Go to the top of the page
 
+Quote Post
-=Vitaly=-
сообщение Sep 16 2006, 05:22
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



[/quote]
альтернативный вариант:
--------------------
plot()...
pause(n);

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


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


Что следует понимать под динамическим выводом?? С какой частотой надо отображать информацию??
Go to the top of the page
 
+Quote Post
Dimka_U
сообщение Sep 21 2006, 04:46
Сообщение #10





Группа: Новичок
Сообщений: 4
Регистрация: 16-09-06
Пользователь №: 20 438



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

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

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016