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

 
 
 
Reply to this topicStart new topic
> Графики в Matlab для большого числа точек, так и задумано или я не умею их готовить?
o-henry
сообщение Feb 19 2007, 14:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



Осваиваю Matlab 7-й.
Хочу отобразить на графике данные, считываемые из файла.
График строю с помощью функции plot().
Данные в файле-это 256K=262144 отсчетов некоторой функции.
График получаю, но...

Увеличиваю начальный участок графика лупой
и с помощью кнопки DataCursor получаю координаты интересующей меня точки,
скажем
X:1030
Y:4010.

тут все ОК.

Теперь хочу просмотреть с увеличением конечный участок графика.
Увеличиваю конечный участок, и с помощью кнопки DataCursor пытаюсь посмотреть координаты интересующих меня точек. При этом координаты отображаются в виде
X:2.605e+005
Y:3777

Получается, что для точек с близкими значениями X я не могу получить точное значение этой координаты.
Т.Е и для точки с координатами по X:260501 и для точки с координатами по X:260502
отображаемое значение будет одно и тоже X:2.605e+005

Как с этим бороться?
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Feb 19 2007, 15:15
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(o-henry @ Feb 19 2007, 14:21) *
...Как с этим бороться?
Попробуйте так:
File->Preferences->Command window->Numeric format->long.

ЗЫ. Нет, так не работает.
По-видимому, этот параметр нужно установить в свойствах картинки (конкретно, осей)...


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Doka
сообщение Feb 19 2007, 23:03
Сообщение #3


Electrical Engineer
******

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



Цитата(o-henry @ Feb 19 2007, 14:21) *
Теперь хочу просмотреть с увеличением конечный участок графика.
Увеличиваю конечный участок, и с помощью кнопки DataCursor пытаюсь посмотреть координаты интересующих меня точек.
....
Т.Е и для точки с координатами по X:260501 и для точки с координатами по X:260502
отображаемое значение будет одно и тоже X:2.605e+005


не проще ли не стараться объять необъятное, а просто вывести на график нужный участок (при этом уважая и свое время - всеже 262К точек вывести - это неслабо)))

если таких участков нужно исследовать несколько, от обычноя поступаю так:
"всасываете" в workspace данные из файла при помощи m-скрипта (самая затратная по времени процедура), а дальше из командной строки вызываете plot() для нужных регионов (возможны варианты).

z.B.:
Код
plot(1:128, y(2^18 - 128 : 2^18));


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


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Feb 19 2007, 23:15
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



И всё-таки, как сделать, чтобы на осях картинки отображалось более 4-х знаков после запятой (точнее, более 5 значащих цифр)? Мне тоже интересно. format не работает, проверял. А несколько сот тысяч точек - вполне обычное дело.

2 Doka
По-моему, проще M-файл создать. Там всё гораздо быстрее получается.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
amusin
сообщение Feb 20 2007, 11:55
Сообщение #5


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

Группа: Участник
Сообщений: 120
Регистрация: 2-09-05
Из: Екатеринбург
Пользователь №: 8 165



Цитата(o-henry @ Feb 19 2007, 16:21) *
Хочу отобразить на графике данные, считываемые из файла.


В свое время тоже делал просмотровщик, а потом узнал о команде sptool
Go to the top of the page
 
+Quote Post
Doka
сообщение Feb 20 2007, 12:19
Сообщение #6


Electrical Engineer
******

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



Цитата(Stanislav @ Feb 19 2007, 23:15) *
По-моему, проще M-файл создать. Там всё гораздо быстрее получается.

согласен: для каждого это индивидуально.. но мне как-то привычнее (и быстрее!) из командной строки в режиме правки предыдущей команды работать (особенно если это "на один раз" - посмотрел и забыл).


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


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
o-henry
сообщение Feb 20 2007, 18:29
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



Цитата(amusin @ Feb 20 2007, 10:55) *
Цитата(o-henry @ Feb 19 2007, 16:21) *

Хочу отобразить на графике данные, считываемые из файла.


В свое время тоже делал просмотровщик, а потом узнал о команде sptool


А если мне нужно обработать реальные данные, полученные с внешнего устройства и сохраненные в файл в специфичном формате (а не сферического коня в вакууме) - то как мне поможет sptool?
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Feb 21 2007, 01:40
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(o-henry @ Feb 20 2007, 18:29) *
А если мне нужно обработать реальные данные, полученные с внешнего устройства и сохраненные в файл в специфичном формате (а не сферического коня в вакууме) - то как мне поможет sptool?
В общем случае - нет, не поможет. Обнародуйте формат, тогда можно будет порекомендовать подходящий способ.

ЗЫ. sptool - для понта, freed - для дела. smile.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
o-henry
сообщение Feb 21 2007, 10:07
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



Цитата(Stanislav @ Feb 21 2007, 00:40) *
ЗЫ. sptool - для понта, freed - для дела. smile.gif

Вот с fread (если Вы его имели в виду) как раз проблем у меня не возникло.
И с преобразованием формата тоже.
Хотелось бы разобраться с отображением. sad.gif
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Feb 21 2007, 10:55
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(o-henry @ Feb 21 2007, 10:07) *
Цитата(Stanislav @ Feb 21 2007, 00:40) *

ЗЫ. sptool - для понта, freed - для дела. smile.gif

Вот с fread (если Вы его имели в виду) как раз проблем у меня не возникло.
Конечно, с fread. Описался. smile.gif
Пробовал принудительно задать сетку XTick с шагом 1, получал вообще "out of memory" или висюк.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
o-henry
сообщение Feb 26 2007, 13:06
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



На случай, если еще кому-нибудь(кроме меня) это интересно, то:

С помощью http://matlab.exponenta.ru
и матлабовского хелпа проблема решается так:

1) пишем такие функции:
Код
% comment: Search in MatLab help the following: Change Data Cursor Text

function []= my_plot (y)
fig = figure;
plot(y);
dcm_obj = datacursormode(fig);
set(dcm_obj,'UpdateFcn',@myupdatefcn);

function txt = myupdatefcn(empt,event_obj)
pos = get(event_obj,'Position');
txt = {['Отсчет№: ',num2str(pos(1))],...
       ['Амплитуда: ',num2str(pos(2))]};


2) далее в основном .m файле заменяем вызовы plot() на нашу my_plot()
и получаем отображение координат в нужном виде.
Go to the top of the page
 
+Quote Post

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

 


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


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