Построение графического интерфейса в системе 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).
Начало выполнения действий по созданию графического интерфейса
Редактор GUIDE (руководство) вызывается командой guideиз командного окна или путем выполнения цепочки команд главного меню File (Файл) – New (Новый) – GUI (Графический Интерфейс).
Две странички, присутствующие на стартовой заставке (рис. 1), позволяют начать проектирование нового интерфейса (вкладка – CreateNewGUI, (Создать новый интерфейс)) или воспользоваться ранее созданным интерфейсом (вкладка – OpenExistingGUI (Открыть существующий интерфейс)). Дело в том, что описание формы приложения вместе с расположенными на ней интерфейсными компонентами может быть сохранено в файле с расширением fig. Если на диске хранится нечто похожее на наше будущее приложение, существующим файлом можно воспользоваться с целью экономии времени.
Начальная конструктора графического интерфейса (GUIDE) (рис. 1)
Мне было предложено рассмотреть приложение, воспроизводящее график одной из пяти функций в зависимости от выбранной строки раскрывающегося меню.
Окно редактирования формы (рис. 2)
После редактирование необходимо сохранить полученный проект. Для этого нажимаем: File–Saveas и сохраняем проект в нужную папку на диске. После этого откроется окно следующего содержания:
Окно редактирования m-кода формы (рис. 3)
Это код, описывающий поведение сохраненной нами формы. В нем содержатся процедуры и функции, которые позволяют форме быть работоспособной.
Окно программы, запущенной на выполнение (рис. 4)
Вот получена работоспособная программа, которая выполняет выведение различных графических зависимостей на координатной плоскости.
Выбирая различные пункты в выпадающем меню, а затем, нажимая кнопку, вы увидите различные варианты получаемых графиков.
Алгоритм создания интерфейса
1. Вызвать панель управления.
1) Создать новую форму интерфейса или загрузить существующую.
2) Перейти в режим редактирования формы.
3) Натаскать на форму необходимые элементы управления.
2. Вызвать редактор свойств.
1) Выбрать элемент управления.
2) Выбрать нужное свойство и изменить его.
3. Вызвать редактор событий.
1) Выбрать элемент управления.
2) Написать код обработки события.
4. Вызвать редактор выравнивания объектов.
1) Выбрать элемент управления иди группу элементов.
2) Выбрать метод выравнивания.
5. Перейти в окно панели управления и активизировать интерфейс.
Литература
1. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/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