Лабораторная работа. Разработка приложения с графическим интерфейсом в среде MATLAB. Подготовил А.В.Бруханский. 2. Разработка приложения с графическим интерфейсом в среде MATLAB. Цель работы


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
1










Лабораторная работа

Разработка приложения с графическим
интерфейсом в среде
M
ATLAB





Подготовил А.В.Бруханский






2


Разработка приложения с графическим интерфейсом в среде
M
ATLAB

Ц
ель работы: Приобретение навыков разработки графического интерфейса
пользователя
(
GUI
)

средствами
MATLAB

и программировани
е реакций на
события, связанным
и с визуальными компонент
ами окна приложе
ния.


З
апуск

среды разработки оконного прило
жения

GUIDE (
GUI
Development

Environment
) осуществляется командой
guide
.



Рисунок
1

Из

набора

шаблонов

(
templates
)
выбираем

«
Blank

GUI

(
Default
)
»



Рисунок
2

3


П
осле

о
т
крытия
главного окна разработки
GUI

(рисунок 2) сохраняем
пустую форму, например, под именем
MTI
.
fig
.

Одновременно с окном формы
MATLAB

создает и сохраняет файл
с
текстом
служебных
функций
, имеющий
то

же им
я
, но

рас
ширение имени
«
.
m
»
,

в
данном примере


«
MTI
.
m
»
. В этом
файле в процессе работы над приложением появятся тексты функций обратного
вызова, выполняемые при наступлении каких либо событий в окне
работающе
-
го приложения.
Такими событиями могут быть нажатие на кнопку, у
с
та
новка
флажка
, изменение теста в окне вв
ода и т.п.

При необходимости
размеры окна

формы
, как и
размеры панели, на которой
в
последствии
будут размещены
элементы управления, м
ожно изменить.

Вид
фигуры

приложения в редакторе
GUI

показан на рисунке 3
.

Фигура содержит следующие элементы:

text
1,

text
2,
text
3



статический
текст

заголовка и меток
;

axes
1


окно

графика
;

Bu
tton

Group

«
Тип

режектора
»

с

двумя

кнопками

radiobutton1
и

radiobutton2;

Pop
-
up

Menu

выбора цвета линии графика (синий, красный, зеленый);

edit
1


Edit

Text

для отображен
ия положения
слайдера
;

slider
1


слайдер
(ползунок) задания максимального коэф
ф
ициента корреляции
помехи
;



Рисунок
3

4


Panel



п
анель

«
Сетка
»

с флажками
chec
k
box
1
и
checkbox
2
установ
ки и сброс
а
линий сетки графика,

а также неотображаемые на форме главное меню
(рисунок 4) и панель
инструментов (рисунок 5).


Рисунок
4


Рисунок
5

Каждому элементу управления окна приложения соответс
т
вует
функция
обратного вызова (
callback
-
function
).
Исходный код функций обратного вызова
приведен далее.

В текст программы включены функции
,

создаваемые
средой
GUIDE

автоматически и не подлежащие изменению.


function

varargout = MTI(varargin)

% Begin initialization code
-

DO NOT EDIT

gui_Sing

gui_State = struct(
'gui_Name'
, mfilename,
...


...


'gui_OpeningFcn'
, @MTI_OpeningFcn,
...


'gui_OutputFcn'
, @MTI_OutputFcn,
...


'gui_LayoutFcn'
, [] ,
...


'gui_Callback'
, []);

if

nargin && ischar(varargin{1})


gui_State.gui_Callback = str2func(varargin{1});

end



if

nargout

5



[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else


gui_mainfc
n(gui_State, varargin{:});

end


%
---

Executes just before MTI is made visible.

function

MTI_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);



title(gca,
'
График
'
);



%
---


function

varargout = MTI_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;



%
---

Executes on slider movement.

function

slider1_Callback(hObject, eventdata, handles)

'Value'
);

'String'
,num2str(rmax,2));


%
---


function

slider1_CreateFcn(hObject, eventdata, handles)

if

'BackgroundColor'
),
'defaultUicontrolBackgroundColor'
))


'BackgroundColor'
,[.9 .9 .9]);

end



%
---

Executes on button press in pushbutton1.

function

pushbutton1_Callback(hObject, eventdata, handles)

w=0:0.01:2*pi;

if

'Value'
)


G=2*sin(w/2);

else


G=4*sin(w/2).^2;

end

wn=w/2/pi;

hp=plot(wn,G,
'Linewidth'
,2);

grid
off
;

if

'Value'
)


'XGrid'
,
'on'
);

end

if

'Value'
)


'YGrid'
,
'on'
);

end


xlabel(
'
Нормированная

частота
'
)

ylabel(
'
Амплитуда
'
)

title(
'
АЧХ

режекторного

фильтра
'
);

'Enable'
,
'on'
);





%
---

Executes on button press in pushbutton2.

function

pushbutton2_Callback(hObject, eventdata, handles)

'String'
);

r=0.8:0.01:str2num(rm);

if

'Value'
)


Ky=1./(1
-
r);

6


else


Ky=3./(3
-
4*r+r.*r);

end

hp=plot(r,Ky,
'Linewidth'
,2);

grid
off
;

if

'Value'
)


'XGrid'
,
'on'
);

end

if

'Value'
)


'YGrid'
,
'on'
);

end


xlabel(
'
Коэффициент

межпериодной

корреляции
'
)

ylabel(
'Коэффициент улучшения'
)

title(
'Коэффициент улучшения режекторного фильтра
'
)

'Enable'
,
'on'
);



function

edit1_Callback(hObject, eventdata, handles)


%
---


function

edit1_CreateFcn(hObject, eventdata, handles)

if

'BackgroundColor'
),
'defaultUicontrolBackgroundColor'
))


'BackgroundColor'
,
'white'
);

end



%
---

Executes

on button press in checkbox1.

function

checkbox1_Callback(hObject, eventdata, handles)

if

'Value'
)


'XGrid'
,
'on'
);

else


'XGrid'
,
'off'
);

end



%
---

Executes on button press in checkbox2.

function

checkbox2_Callback(hObject, eventdata, handles)

if

'Value'
)


'YGrid'
,
'on'
);

else


'YGrid'
,
'off'
);

end

%
-------------------------------------------------------
-------------

function

fmenu2_Callback(hObject, eventdata, handles)

'Children'
);

'YData'
);

'XData'
);

save(
'ydat.txt'
,
'ydata'
,
'
-
ASCII'
);

save(
'xdat.txt'
,
'xdata'
,
'
-
ASCII'
);

%
--------------------------------------------------------------------

function

fmenu3_Callback(hObject, eventdata, handles)

figure;


xd=load(
'xdat.txt'
,
'
-
ascii'
);


yd=load(
'ydat.txt'
,
'
-
ascii'
);

plot(xd,yd);

grid
on



%
---

Executes on button press in pushbutton3.

function

pushbutton3_Callback(hObject, eventdata, handles)

7


cla;

'Enable'
,
'off'
);

xlabel(
''
); ylabel(
''
); title(
''
);


%
---

Executes on selection change in popupmenu1.

function

popupmenu1_Callback(hObject, eventdata, handles)

'Value'
);

'Children'
);

switch

Num


case

1


'Color'
,
'b'
);


case

2


'Color'
,
'r'
);


case

3


'Color'
,
'g'
);

end



%
---


function

popupmenu1_CreateFcn(hObject, eventdata, handles)

if

'BackgroundColor'
),
'defaultUicont
rolBackgroundColor'
))


'BackgroundColor'
,
'white'
);

end


В
ид окна
,

работающего приложения

приведен на рисунках
6 и 7



Рисунок
6

8



Рисунок
7

График
,

построенный по сохраненным дан
ным
,

показан на рисунке 8.



Рисунок
8


Приложенные файлы

  • pdf 2868853
    Размер файла: 639 kB Загрузок: 0

Добавить комментарий