Реферат: Построение графического интерфейса в системе Matlab

Построение графического интерфейса в системе Matlab

Введение

Matlab– это система инженерных и научных вычислений. Она обеспечивает математические вычисления, визуализацию научной графики программирование и моделирование процессов с использованием интуитивно понятной среды окружения, когда задачи и их решения могут быть представлены в нотации, близкой кматематической. Наиболее известные области применения системы Matlab:

математика и вычисления;

разработка алгоритмов;

вычислительный эксперимент, имитационное моделирование, макетирование;

анализ данных, исследование и визуализация результатов;

научная и инженерная графика;

разработка приложений, включая графический интерфейс пользователя.

Основным объектом при программировании в среде Matlabявляется массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками.

Система Matlab– это одновременно и операционная среда и язык программирования. Пользователь может написать специализированные функции и программы, которые оформляются в виде М-файлов. По мере увеличения количества созданных программ возникают проблемы их классификации и тогда можно попытаться собрать родственные функции в специальные папки. Это приводит к концепции пакетов прикладных программ, которые представляют собой коллекции М-файлов для решения определенной задачи или проблемы.

Cредасистемы Matlab

Среда системы Matlabэто совокупность интерфейсов, через которые пользователь поддерживают связь этой системой. Это: диалог посредством командной строки или графического интерфейса, просмотр рабочей области, редактор и отладчик М-файлов, работа с файлами и оболочкой DOS, экспорт и импорт данных, интерактивный доступ к справочной информации, динамическое взаимодействие с внешними системами MicrosoftWord, MicrosoftExcelи др. Реализуются эти интерфейсы через командное окно, инструментальную панель, системы просмотра рабочей области и путей доступа, редактор / отладчик М-файлов, специальныеменю.

Пользовательский интерфейс носит дружественный характер и построен с учетом устоявшихся принципов программного обеспечения, разрабатываемого для операционной системы Windows.

В системе Matlabсуществует два вида м-файлов:

скрипты – представляют последовательности команд (представляют собой процедуры);

function– представляют собой функции с входными аргументами и выходными параметрами (значениями функции).

Но далее возникает необходимость многократного запуска файла программы при других, изменённых параметрах решаемой задачи. Возникает неудобство: в постоянном редактировании исходного текста программы и повторном или очередном её запуске. При этом важен механизм управления переменными, который бы обеспечивал удобный интерфейс между программой и пользователем. При решении других задач могут возникнуть трудности с визуализацией какого-либо процесса, то есть некоторая переменная изменяться динамически в процессе решения поставленной задачи.

Все эти и другие трудности, возможно, решить при использовании графического интерфейса пользователя. (GUI– GraphicalUserInterface)

Основные принципы построения графического интерфейса

Использование графического интерфейса позволяет пользователю сделать программу более универсальной.

Как и любой процесс проектирования, процесс построения графического интерфейса пользователя можно разбить на следующие этапы:

1. Постановка задачи,

2. Создание формы интерфейса и создание на неё элементов управления.

3. Написание кода программы и кода обработки событий.

Этапы построения графического интерфейса пользователя

1. На первом этапе проводиться анализ поставленной задачи и определяется количество и состав элементов управления необходимых для решения задачи.

2. На втором этапе создаётся форма графического интерфейса и на ней создаются и размещаются элементы управления. Здесь же описываются их свойства.

Задавать расположение и выравнивать элементы на форме описывать их свойства можно 'вручную', но для удобства и быстроты используют редактор выравнивания объектов (TheAlignmentTool) и редактора свойств (ThePropertyEditor).

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

использование команды WORKSPACE(то есть использование команды операционной среды MATLAB).

использование средств панели инструментов – совокупности средств для быстрого создания GUI(TheControlPanel).

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

Эти команды можно использовать как для написания кода, создающего графический интерфейс пользователя, так и использовать для управления свойствами элементов управления из тела m-файлов. Благодаря чему мы можем получить визуализацию нашего процесса вычисления.

На практике всё более склоняются ко второму способу создания графического интерфейса с элементами управления. Это объясняется тем, что при использовании панели управления с её редакторами свойств, событий, выравнивания очень удобно работать, и создавать GUIзначительно быстрее, чем в первом случае.

3. На третьем этапе создания графического интерфейса пользователя(GUI) пишется код основной программы вычисления и код для обработки событий.

Код основной программы вычисления, пишется на языке программирования операционной среды Matlab, в виде m-файла. Созданные m-файлы закрепляются за событием какого-нибудь элемента управления или формы.

При описании свойств элементов управления события описываются в m-файле:

а) либо при создании каждого элемента управления описываем его свойства и сразу описываем действие событие;

б) либо описываем обработку события для каждого элемента при помощи редактора событий (ThePropertyEditor).

--PAGE_BREAK--

Начало выполнения действий по созданию графического интерфейса

Редактор GUIDE(руководство) вызывается командой guideиз командного окна или путем выполнения цепочки команд главного меню File(Файл) – New(Новый) – GUI(Графический Интерфейс).

Две странички, присутствующие на стартовой заставке (рис. 1), позволяют начать проектирование нового интерфейса (вкладка – CreateNewGUI, (Создать новый интерфейс)) или воспользоваться ранее созданным интерфейсом (вкладка – OpenExistingGUI(Открыть существующий интерфейс)). Дело в том, что описание формы приложения вместе с расположенными на ней интерфейсными компонентами может быть сохранено в файле с расширением fig. Если на диске хранится нечто похожее на наше будущее приложение, существующим файлом можно воспользоваться с целью экономии времени.

/>

Начальная конструктора графического интерфейса (GUIDE) (рис. 1)

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

/>

Окно редактирования формы (рис. 2)

После редактирование необходимо сохранить полученный проект. Для этого нажимаем: File–Saveasи сохраняем проект в нужную папку на диске. После этого откроется окно следующего содержания:

/>

Окно редактирования m-кода формы (рис. 3)

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

/>

Окно программы, запущенной на выполнение (рис. 4)

Вот получена работоспособная программа, которая выполняет выведение различных графических зависимостей на координатной плоскости.

Выбирая различные пункты в выпадающем меню, а затем, нажимая кнопку, вы увидите различные варианты получаемых графиков.

Алгоритм создания интерфейса

1. Вызвать панель управления.

Создать новую форму интерфейса или загрузить существующую.

Перейти в режим редактирования формы.

Натаскать на форму необходимые элементы управления.

2. Вызвать редактор свойств.

Выбрать элемент управления.

Выбрать нужное свойство и изменить его.

3. Вызвать редактор событий.

Выбрать элемент управления.

Написать код обработки события.

4. Вызвать редактор выравнивания объектов.

Выбрать элемент управления иди группу элементов.

Выбрать метод выравнивания.

5. Перейти в окно панели управления и активизировать интерфейс.

Литература

1. Дьяконов, В.П. MATLAB6.5 SP1/7 + Simulink5/6 в математике и моделировании / В.П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 576 с.

2. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Основы применения / В.П. Дьяконов – М.: СОЛОН-Пресс, 2005. – 800 с.

3. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Работа с изображениями и видеопотоками / В.П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 400 с.

4. Ермачкова Ю.А. Проектирование интерфейса в среде GUIDEMATLAB/ Ю.А. Ермачкова // Современные информационные технологии в экономике, управлении и образовании. Сборник материалов межвузовской научно-практической конференции, посвященной 175 – летию потребительской кооперации России и 5 – летию филиала. – М.: Информационно-внедренческий центр «Маркетинг», 2006. – С. 35–37.

Приложение

function varargout = kursovaya(varargin)

% KURSOVAYA M-file for kursovaya.fig

% KURSOVAYA, by itself, creates a new KURSOVAYA or raises the existing

% singleton*.

%

% H = KURSOVAYA returns the handle to a new KURSOVAYA or the handle to

% the existing singleton*.

%

% KURSOVAYA ('CALLBACK', hObject, eventData, handles,…) calls the local

% function named CALLBACK in KURSOVAYA.M with the given input arguments.

%

% KURSOVAYA ('Property', 'Value',…) creates a new KURSOVAYA or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before kursovaya_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to kursovaya_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose «GUI allows only one

% instance to run (singleton)».

    продолжение
--PAGE_BREAK--

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help kursovaya

% Last Modified by GUIDE v2.5 25-Dec-2009 17:53:25

% Begin initialization code – DO NOT EDIT

gui_Singleton = 1;

gui_State = struct ('gui_Name', mfilename,…

'gui_Singleton', gui_Singleton,…

'gui_OpeningFcn', @kursovaya_OpeningFcn,…

'gui_OutputFcn', @kursovaya_OutputFcn,…

'gui_LayoutFcn', [],…

'gui_Callback', []);

if nargin && ischar (varargin{1})

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

end

if nargout

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

else

gui_mainfcn (gui_State, varargin{:});

end

% End initialization code – DO NOT EDIT

% – Executes just before kursovaya is made visible.

function kursovaya_OpeningFcn (hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to kursovaya (see VARARGIN)

% Choose default command line output for kursovaya

handles.output = hObject;

% Update handles structure

guidata (hObject, handles);

% This sets up the initial plot – only do when we are invisible

% so window can get raised using kursovaya.

if strcmp (get(hObject, 'Visible'), 'on')

F = @(t, x) 0; ode23tx (F, [0 10], 1);

end

% UIWAIT makes kursovaya wait for user response (see UIRESUME)

% uiwait (handles.figure1);

% – Outputs from this function are returned to the command line.

function varargout = kursovaya_OutputFcn (hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% – Executes on button press in pushbutton1.

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)

axes (handles.axes1);

cla;

popup_sel_index = get (handles.popupmenu1, 'Value');

switch popup_sel_index

case 1

F = @(t, x) 0; ode23tx (F, [0 10], 1)

case 2

F = @(t, x) t; ode23tx (F, [0 10], 1);

case 3

F = @(t, x) x; ode23tx (F, [0 10], 1);

case 4

F = @(t, x) – x; ode23tx (F, [0 10], 1);

case 5

F = @(t, x) 2*x-x^2; ode23tx (F, [0 10], 1);

end

% –

function FileMenu_Callback (hObject, eventdata, handles)

% hObject handle to FileMenu (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% –

function OpenMenuItem_Callback (hObject, eventdata, handles)

% hObject handle to OpenMenuItem (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

file = uigetfile ('*.fig');

if ~isequal (file, 0)

open(file);

    продолжение
--PAGE_BREAK--

end

% –

function PrintMenuItem_Callback (hObject, eventdata, handles)

% hObject handle to PrintMenuItem (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

printdlg (handles.figure1)

% –

function CloseMenuItem_Callback (hObject, eventdata, handles)

% hObject handle to CloseMenuItem (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

selection = questdlg(['Close ' get (handles.figure1,'Name') '?'],…

['Close ' get (handles.figure1,'Name') '…'],…

'Yes', 'No', 'Yes');

if strcmp (selection, 'No')

return;

end

delete (handles.figure1)

% – Executes on selection change in popupmenu1.

function popupmenu1_Callback (hObject, eventdata, handles)

% hObject handle to popupmenu1 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = get (hObject, 'String') returns popupmenu1 contents as cell array

% contents {get(hObject, 'Value')} returns selected item from popupmenu1

% – Executes during object creation, after setting all properties.

function popupmenu1_CreateFcn (hObject, eventdata, handles)

% hObject handle to popupmenu1 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal (get(hObject, 'BackgroundColor'), get (0,'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

end

set (hObject, 'String', {'y(t)=const', 'y=1+t.^2./2', 'y=exp(t)', 'y=exp(-t)', 'y=2./(1+exp (-2*t))'});


еще рефераты
Еще работы по информатике