|
|
  |
Графики в Matlab для большого числа точек, так и задумано или я не умею их готовить? |
|
|
|
Feb 19 2007, 14:21
|

Местный
  
Группа: Свой
Сообщений: 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:26050 1 и для точки с координатами по X:26050 2 отображаемое значение будет одно и тоже X:2.605e+005 Как с этим бороться?
|
|
|
|
|
Feb 19 2007, 15:15
|

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

|
Цитата(o-henry @ Feb 19 2007, 14:21)  ...Как с этим бороться? Попробуйте так: File->Preferences->Command window->Numeric format-> long. ЗЫ. Нет, так не работает. По-видимому, этот параметр нужно установить в свойствах картинки (конкретно, осей)...
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 19 2007, 23:03
|

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));
--------------------
|
|
|
|
|
Feb 20 2007, 11:55
|
Частый гость
 
Группа: Участник
Сообщений: 120
Регистрация: 2-09-05
Из: Екатеринбург
Пользователь №: 8 165

|
Цитата(o-henry @ Feb 19 2007, 16:21)  Хочу отобразить на графике данные, считываемые из файла. В свое время тоже делал просмотровщик, а потом узнал о команде sptool
|
|
|
|
|
Feb 20 2007, 18:29
|

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

|
Цитата(amusin @ Feb 20 2007, 10:55)  Цитата(o-henry @ Feb 19 2007, 16:21)  Хочу отобразить на графике данные, считываемые из файла.
В свое время тоже делал просмотровщик, а потом узнал о команде sptool А если мне нужно обработать реальные данные, полученные с внешнего устройства и сохраненные в файл в специфичном формате (а не сферического коня в вакууме) - то как мне поможет sptool?
|
|
|
|
|
Feb 21 2007, 01:40
|

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

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

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

|
Цитата(Stanislav @ Feb 21 2007, 00:40)  ЗЫ. sptool - для понта, freed - для дела.  Вот с fread (если Вы его имели в виду) как раз проблем у меня не возникло. И с преобразованием формата тоже. Хотелось бы разобраться с отображением.
|
|
|
|
|
Feb 21 2007, 10:55
|

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

|
Цитата(o-henry @ Feb 21 2007, 10:07)  Цитата(Stanislav @ Feb 21 2007, 00:40)  ЗЫ. sptool - для понта, freed - для дела.  Вот с fread (если Вы его имели в виду) как раз проблем у меня не возникло. Конечно, с fread. Описался. Пробовал принудительно задать сетку XTick с шагом 1, получал вообще "out of memory" или висюк.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 26 2007, 13:06
|

Местный
  
Группа: Свой
Сообщений: 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() и получаем отображение координат в нужном виде.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|