Этот пример показывает, как исследовать и запустить предварительно созданное приложение GUIDE. Приложение содержит две таблицы, две оси и всплывающее меню. Большая таблица на левых отображениях 288 записей данных солнечного пятна. Главные оси отображают график всех 288 записей. Когда вы выбираете 11 или больше элементов из таблицы слева, график выбранных записей отображается в нижних осях. Таблица в правом нижнем углу показывает статистические сводные данные данных солнечного пятна. Всплывающее меню наверху окна позволяет вам переключиться между графиками во время и частотные диапазоны.
Открытый и выполнение приложение. Выберите 11 или больше строк в таблице Data Set, чтобы видеть график тех точек на подстилающем слое осей. Когда вы изменяете свой выбор, числа во втором столбце обновления таблицы Data Statistics.
В GUIDE нажмите кнопку Editor, чтобы просмотреть код.
Около верхней части окна Editor используйте кнопку Go To, чтобы перейти к функциям, обсужденным ниже.
plot_type_Callback
Функция plot_type_Callback
выполняется, когда пользователь изменяет выбор во всплывающем меню наверху окна. Следующие операторы получают в настоящее время выбранный пункт меню и обновляют метку выше осей.
index = get(hObject,'Value'); strlist = get(hObject,'String'); set(handles.uipanel3,'Title',strlist(index))
Эти команды получают все 288 записей в таблице и строят график их в главных осях. Функция refreshDisplays
является локально определенной функцией.
table = get(handles.data_table,'Data');
refreshDisplays(table, handles, 1);
Эти команды обновляют нижний график и статистическую сводную таблицу, если больше чем 10 записей выбраны.
selection = handles.currSelection; if length(selection) > 10 refreshDisplays(table(selection,:), handles, 2) else % Do nothing; insufficient observations for statistics end
data_table_CellSelectionCallback
Функция data_table_CellSelectionCallback
выполняется, когда пользователь выбирает любую из ячеек в большей таблице слева. Эта команда получает в настоящее время выбранные записи в таблице:
selection = eventdata.Indices(:,1);
Эти команды обновляют поле currSelection
структуры handles
так, чтобы к выбору пользователя можно было получить доступ из других обратных вызовов, таких как функция plot_type_Callback
.
handles.currSelection = selection; guidata(hObject,handles);
Наконец, refreshDisplays
обновляет нижний график и статистическую сводную таблицу.
refreshDisplays(table(selection,:),handles,2);