Этот пример показывает, как исследовать и запустить предварительно созданное приложение 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);