Первый этап
Для создания приложения разместить в окне следующие компоненты:
|
|
Второй этап
Установить основные свойства всех компонентов, расположенных в окне приложения, в соответствии с таблицей.
Таблица 1 – Основные свойства объектов задания 1
Свойство |
Первая метка |
Вторая метка |
Первое текстовое поле |
Второе текстовое поле |
Переключатели |
Оси |
Кнопка |
|
1 |
2 |
|||||||
Tag |
textA |
textB |
editA |
editB |
rbs |
rbc |
axes1 |
pushbutton1 |
String |
A= |
B= |
0 |
5 |
x=sin(t) |
y=cos(t) |
|
Graphik |
Третий этап
Написать функцию-обработчик CallBack события кнопки Graphik.
Листинг 1
% --------------------------------------------------------------------
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Считать из компонента editA строку, которую преобразовать в вещественное число а, для
% получения строки мы считываем свойство String из компонента с именем editA с помощью функции get,
% обращение к нетекущему компоненту осуществляется с помощью
% конструкции handles.editA.
a=str2double(get(handles.editA,'String'));
% Считать из компонента editВ строку, которую преобразовать в вещественное число b.
b=str2double(get(handles.editB,'String'));
% Вычислить шаг изменения t.
h=(b-a)/100;
% Сформировать массив t.
t=a:h:b;
% Сформировать массив х.
x=sin(t);
% Сформировать массив у.
y=cos(t);
% Если активен первый переключатель (x=sin(t)),
if get(handles.rbs,'Value')==1
% изображаем x(t).
plot(t,x);
% Если активен второй переключатель (у=соs(t)),
elseif get(handles.rbc,'Value')==1
% изображаем у(t).
plot(t,y);
end
% Если нет линий сетки, перпендикулярных оси ОХ,
if get(gca,'XGrid' )=='off'
% то изображаем эти линии сетки.
set(gca,'XGrid','on' );
end
% Если нет линий сетки, перпендикулярных оси ОY,
if get(gca,'YGrid' )=='off'
% то изображаем эти линии сетки.
set(gca,'YGrid','on' )
end
Задание 2 (для самостоятельной работы)
Создать приложение, которое будет строить график одной из 8 выбранных функций в интервале[a,b].
В окне приложения использовать дополнительный компонент – панель для объединения переключателей или флажков, со свойствами: tag – uipanelf, string – , title – функция.
Задание 3 (для самостоятельной работы)
Модифицировать Задание 2, добавив в приложение два флажка: Сетка по оси Х, Сетка по оси Y, которые будут управлять изображением линии сетки, и поместив эти флажки на новую панель для объединения переключателей или флажков. При этом необходимо модифицировать обработчик событий pushbutton1_Callback и написать обработчик событий Callback для компонентов checkbox_x и checkbox_y.
Таблица 2 – Основные свойства панели и флажков для задания 3
|
Листинг 2 % -------------------------------------------------------------------- % модифицированный обработчик событий pushbutton1_Callback function pushbutton1_Callback(hObject, eventdata, handles) ....... % Если флажок линий сетки, перпендикулярных OY, активен, то if get(handles.checkbox_?,'Value' )==1 % отобразить линии сетки, перпендикулярные OY, set(gca,'?Grid','on' ); % иначе не отображать линии сетки, перпендикулярные OY. else set(gca,'YGrid','off'); end % Если флажок линий сетки, перпендикулярных OХ, активен, то if get(handles.checkbox_?,'Value' )==1 % отобразить линии сетки, перпендикулярные OХ, set(gca,'?Grid','on' ); % иначе не отображать линии сетки, перпендикулярные OХ. else set(gca,'XGrid','off' ); end % -------------------------------------------------------------------- % обработчик событий checkbox_x_Callback function checkbox_x_Callback(hObject, eventdata, handles) % hObject handle to checkbox_x (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox_x % Если флажок линий сетки (текущий объект gca), перпендикулярных OY, активен, то if get(hObject,'Value' )==1 % отобразить линии сетки, перпендикулярные OY, set(gca,'?Grid','on' ); % иначе не отображать линии сетки, перпендикулярные OY. else set(gca,'?Grid','off'); end end % -------------------------------------------------------------------- % обработчик событий checkbox_у_Callback function checkbox_y_Callback(hObject, eventdata, handles) % hObject handle to checkbox_y (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox_y % Если флажок линий сетки (текущий объект gca), перпендикулярных OХ, активен, то if get(hObject,'Value' )==1 % отобразить линии сетки, перпендикулярные OХ, set(gca,'?Grid','on' ); % иначе не отображать линии сетки, перпендикулярные OХ. else set(gca,'?Grid','off'); end end
|
||||||||||||||||
|
