Урок №5.

Пользовательский интерфейс MATLAB

    Общая характеристика пользовательского интерфейса

    Панель инструментов

    Операции с буфером обмена

    Браузеры рабочей области и файловой структуры

    Запуск приложения Simulink

    Вызов справки по системе MATLAB

    Меню системы MATLAB

    Работа с файлами

    Настройка MATLAB и функция path

    Обеспечение печати

    Интерфейс редактора и отладчика т-файлов

    Файлы сценариев и функций

    Интерфейс графических окон

    Общение MATLAB с операционной системой

2. Общая характеристика пользовательского интерфейса

Общая характеристика пользовательского интерфейса

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

Имеются и типовые средства приложений Windows 95/98/Me/2000/NT4 - меню и панель инструментов. Но они по-прежнему выглядят намного скромнее, чем у большинства современных приложений Windows. Видимо, так и должно быть - чем серьезнее математическая система, тем меньше она нуждается в использовании всевозможных кнопок на панели инструментов и тем скромнее может быть ее главное меню.

Рис. 5.1. Окно системы MATLAB

И, тем не менее, пользовательский интерфейс в системе MATLAB 6.0 кардинально переработан. Это видно из рис. 5.1, на котором показано основное полностью открытое окно системы MATLAB 6.0 так, как оно предстает перед пользователем при запуске.

Главными отличиями от весьма скромного интерфейса прежних версий системы MATLAB у новой версии стали:

    позиция Web меню, открывающая доступ к Интернет ресурсам фирмы Math-Works Inc.;

    меню используемых разделов текущей папки файловой системы Current Directory в конце панели инструментов справа;

    окно с вкладками Launch Path (Доступ к частям системы) и Workspace (Рабочая область) в левой части основного окна (сверху);

    окно с вкладками Command History (Обзор ранее исполненных команд) и Current Directory (Текущая папка) в левой части основного окна (сверху)

    применение цветового выделения выражений в командной строке, что упрощает оперативный контроль их синтаксиса по мере ввода.

Эти отличия указывают на то, что разработчики новой версии уделили больше внимания оперативному контролю за состоянием системы, который ранее (в прежних версиях) был как бы за кадром.

1.gif

Изображение:

3. Упрощенный интерфейс

Упрощенный интерфейс

Сделав решительный шаг в обновлении интерфейса, разработчики MATLAB 6.0, похоже, испугались недовольства старых пользователей, уже привыкших работать со скромным и отчасти даже ущербным интерфейсом прежних версий MATLAB. А потому они ввели возможности изменения интерфейса системы, в том числе представления его в добром старом виде. Все эти возможности реализуются командами в позиции View (Вид) меню. На рис. 5.1 вкладка View показана в открытом состоянии.

Теперь пользователь может настраивать вид интерфейса и по-разному располагать его окна. В частности, исполнив команду View > Desktop Layout > Command Window Only (Только командное окно) можно получить «старый» вид интерфейса - рис. 5.2. Теперь о новациях в интерфейсе напоминают лишь позиция меню Web и доступ из панели инструментов к папкам файловой системы. Кстати, окно доступа к папкам файловой системы также показано на рис. 5.2.

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

Для редактирования и отладки m-файлов MATLAB имеет встроенный современный редактор, интерфейс которого выполнен в лучших традициях Windpws-приложений. В том же стиле выполнены окно просмотра ресурсов памяти, окно просмотра путей файловой системы, справочник по возможностям системы и демонстрационные программы. Редактор графики и окно графики со средствами редактирования рисунков уже были описаны.

Рис. 5.2. Упрощенный интерфейс системы MATLAB 6.0

2.gif

Изображение:

4. Работа с панелью инструментов

Работа с панелью инструментов

Средства панели инструментов

Панель инструментов (рис. 5.3) дает наиболее простой и удобный (особенно для начинающих пользователей) способ работы с системой MATLAB. При этом основные команды вводятся указанием курсором мыши на нужную кнопку с нажатием левой клавиши мыши. Кнопки имеют изображение, явно подсказывающее их назначение.

Рис. 5.3. Часть окна системы MATLAB с меню и панелью инструментов

Прежде всего перечислим назначение всех кнопок панели инструментов:

    New M-file (Новый m-файл) - выводит пустое окно редактора m-файлов;

    Open file (Открыть файл) - открывает окно для загрузки m-файла;

    Cut (Вырезать)- вырезает выделенный фрагмент и помещает его в буфер;

    Сору (Копировать)- копирует выделенный фрагмент в буфер;
    Paste (Вставить)- переносит фрагмент из буфера в текущую строку ВВОДА

    Undo (Отменить)- отменяет предшествующую операцию;

    Redo (Повторить) - восстанавливает последнюю отмененную операцию;

    Simulink - открывает окно браузера библиотек Simulink;

    Help (Помощь)- открывает окно справки.

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

    назначении кнопок говорят и всплывающие подсказки, появляющиеся, когда курсор мыши устанавливается на соответствующую кнопку.

    ни имеют вид желтого прямоугольника с текстом короткой справки - см. пример такой подсказки на рис. 2.12 у кнопки Help панели инструментов. Любопытно отметить, что доступ к браузерам рабочей области и файловой системы из панели инструментов убран.

3.gif

Изображение:

5. Вызов окна открытия нового файла

Вызов окна открытия нового файла

Кнопка New M-file открывает окно редактора/отладчика m-файлов. Это окно показано на рис. 5.4. Работу с этим средством мы обсудим позже.

Рис. 5.4. Пустое окно редактора/отладчика m-файлов

По умолчанию файлу дается имя Untitled (безымянный), которое впоследствии (при записи файла) можно изменить на другое, отражающее тему задачи. Это имя отображается в титульной строке окна редактирования m-файла, которое размещается в окне редактора/отладчика и видно на рис. 5.4. В редакторе/отладчике можно редактировать несколько m-файлов, и каждый из них будет находиться в своем окне редактирования, хотя активным может быть только одно окно, расположенное поверх других окон.

Примечание

Обратите внимание, что панель инструментов является контекстно-зависимой. Для редактора/отладчика m-файлов она имеет несколько иной набор инструментов, чем для окна командного режима работы (см. рис. 5.1). Позже мы уточним эти отличия.

4.gif

Изображение:

6. Вызов окна загрузки имеющегося файла

Вызов окна загрузки имеющегося файла

Кнопка Open file (Открыть файл) служит для загрузки в редактор/отладчик ранее созданных m-файлов, например входящих в пакет расширения (Toolbox) системы или разработанных пользователем. Она открывает окно, которое является типичным элементом интерфейса Windows-приложений и показано на рис. 5.5 внутри окна редактора/отладчика m-файлов.

Рис. 5.5. Окно загрузки файла в окне редактора/отладчика

В окне загрузки файлов с помощью раскрывающегося списка Папка и вертикальной полосы прокрутки можно «пройтись» по всем дискам, папкам и файлам. Чтобы выбрать нужный файл для загрузки, его требуется выделить мышью. Выбор завершается двойным щелчком на имени файла, нажатием клавиши Enter или щелчком на кнопке Открыть. Любое из этих действий приводит к загрузке документа в текущее окно системы. Кнопка Отмена или клавиша Esc позволяет отказаться от загрузки.

Примечание

Пусть читателя не волнуют внезапно появившиеся русскоязычные надписи на элемен-тах интерфейса окна загрузки файлов. Они говорят лишь о том, что используется окно стандартной русифицированной операционной системы Windows 95/98/Ме, которая обычно устанавливается у наших пользователей.

Для вызова одного из ранее использовавшихся документов достаточно щелкнуть мышью на его имени в списке, находящемся над командой Exit (Выход) в меню File. После загрузки файла с документом его текст появляется в текущем окне - на рис. 5.5 показан текст выбранного файла graf2d.rn (демонстрация возможностей двумерной графики). Его можно начинать редактировать или запускать на исполнение.

5.gif

Изображение:

7. Операции с буфером обмена

Операции с буфером обмена

Кнопки Cut (Вырезать), Сору (Копировать) и Paste (Вставить) реализуют наиболее характерные команды работы с буфером обмена (Clipboard). Первые две операции относятся к выделенным фрагментам сессии или текста m-файлов (если они выполняются в окне редактора/отладчика). Для выделения объектов можно использовать мышь, перемещая курсор по тексту при нажатой левой кнопке, или клавиши со стрелками в комбинации с клавишей Shift.

На рис. 5.6 показан пример выделения содержимого матрицы М в окне документа MATLAB. Эта матрица формируется функцией magiс (n) и называется магической, поскольку сумма элементов любого столбца, любой строки и даже любой диагонали равна одному и тому же числу - 34 для матрицы при n=4.

Рис. 5.6. Окно документа с выделенным содержимым матрицы М

Команда Cut (Вырезать) осуществляет вырезание выделенного фрагмента и размещение его в буфере. При этом вырезанный фрагмент удаляется из текста документа. Команда Сору (Копировать) просто копирует выделенный фрагмент в буфер, сохраняя его в тексте. Команда Paste (Вставить) вызывает объект из буфера (сохраняя объект в буфере) и помещает копию объекта на место в документе, указанное текстовым курсором. Эти операции реализуются как соответствующими кнопками, так и командами меню Edit (Редактировать). В MATLAB можно использовать контекстное меню, появляющееся при нажатии правой кнопки мыши. Например, установив курсор мыши на выделенный фрагмент матрицы М и нажав правую кнопку, можно увидеть меню, показанное на рис. 5.6. В нем, кстати, дублируется позиция с командой Сору (Копировать). Есть и ряд других доступных в данный момент команд. Обратите внимание, что в момент подготовки магической матрицы М ее имя появилось в окне браузера рабочей области - в правой части экрана. При этом матрица представляется изображением таблицы.

Содержимое буфера можно перенести в строку ввода, в окно редактора-отладчика m-файлов или даже в другое приложение. Допустим, мы хотим создать матрицу M1 с содержимым, которое размещено в буфере. Для этого достаточно набрать М1=[ и, нажав правую клавишу мыши, выбрать из появившегося меню команду Paste (Вставить). Этот момент фиксирует рис. 5.7.

Рис. 5.7. Подготовка к вставке данных матрицы из буфера

Исполнив команду Paste, можно увидеть, что данные хранящейся в буфере матрицы появятся после открывающей квадратной скобки. Для создания матрицы Ml остается ввести закрывающую квадратную скобку ] и нажать клавишу Enter. На рис. 5.8 показано, как создается матрица Ml, по содержимому аналогичная матрице М.

Рис. 5.8. Пример создания матрицы M1 с содержимым, взятым из буфера

Разумеется, этот пример является чисто учебным. Не обращаясь к помощи буфера, можно было бы просто записать М1=М. Или М2=М - именно так на рис. 5.8 задана матрица М2. Однако зачастую операции с буфером весьма полезны. Так, все примеры в тексте этой книги получены переносом выделенных фрагментов соответствующей сессии в окно текстового редактора Microsoft Word. Возможен и обратный перенос - записанных в документах редактора Microsoft Word примеров в командную строку MATLAB для исполнения примеров.

Примечание

Обратите внимание на команду Select All в контекстном меню. Эта команда позволяет выделить весь текст текущей сессии-А команда Clear Session очищает окно от содержимого данной сессии.

6a.gif

Изображение:

6b.gif

Изображение:

7.gif

Изображение:

8.gif

Изображение:

8. Отмена результата предшествующей операции

Отмена результата предшествующей операции

Часто, выполнив какую-то операцию, мы отмечаем, что она оказалась ошибочной. При работе в MATLAB такой ситуации пугаться не стоит, - нажатие кнопки Undo (Отменить) панели инструментов приведет к отмене последнего действия, выполненного в текущей строке. Операции в предыдущих строках документа этой командой не отменяются. Если оказалось, что вы зря произвели отмену последней операции, то ее легко восстановить, введя с панели инструментов операцию Redo (Восстановить).

9. Запуск приложения Simulink

Запуск приложения Simulink

Кнопка Simulink панели инструментов (или команда simulink из строки ввода) запускает одно из самых мощных приложений системы MATLAB - программу моделирования систем, построенных из типовых блоков. Эта система (пакет инструментов (toolbox) Simulink) в данной книге подробно не описывается (см. и описание предшествующей версии в), так что пока отметим лишь, что щелчок на указанной кнопке выводит окно библиотеки типов блоков (рис. 5.9 слева).

В MATLAB 6.0 применена новая версия Simulink 4 с библиотекой блоков Block Library. Эта библиотека содержит существенно расширенный набор компонентов - блоков, объединенных в тематические группы. Чтобы упростить поиск и выбор блоков, окно библиотеки организовано в виде браузера библиотеки, очень напоминающего Проводник (Windows Explorer) операционной системы Windows 95/98/ Me/2000/NT4. Окно браузера показано на рис. 5.9 слева. В нем видно дерево моделей с раскрывающимися ветвями-блоками. Изображение компонентов выделенного блока дерева показывается в поле просмотра в правой части окна браузера.

Для загрузки модели какой либо системы или устройства (в том числе из числа демонстрационных примеров) достаточно активизировать кнопку Ореn.(Открыть), имеющую вид открывающейся папки. При этом появится окно редактора модели программы Simulink, которое показано на рис. 5.9 справа. Это стандартное окно загрузки файлов, принятое во всех приложениях операционной системы Windows 95/98/Ме/2000. В нем можно выбрать и загрузить файл нужной модели или демонстрационного примера.

Рис. 5.9. Окно браузера библиотечных блоков программы Simulink

Рис. 5.10 показывает загруженную в Simulink модель аттрактора Лоренца - демонстрационный файл lorenz. Здесь видно окно с загруженной моделью (она находится слева) и окна встроенного виртуального осциллографа - одного из многих виртуальных регистрирующих устройств, которые имеются в составе Simulink.

Рис. 5.10. Пример работы программы Simulink

Кнопка с треугольником в панели инструментов Simulink запускает процесс моделирования. О его результатах можно судить по показаниям регистрирующих приборов - в частности, упомянутого уже осциллографа. В его окнах появляются сложные и довольно хаотические колебания, характерные для аттрактора Лоренца. Параметры каждого блока можно уточнить или задать с помощью окна параметров блока. На рис. 5.10 снизу справа показано такое окно для блока Beta*z - множительного устройства. Большинство установок параметров блоков довольно очевидны - даже несмотря на то, что их параметры указаны на английском языке.

Кнопка Create a new model (Создать новую модель) в окне библиотек Simulink открывает чистое окно редактора моделей. Любой блок можно перетащить мышью в это окно. Введенные таким образом блоки соединяются друг с другом линиями, для чего используется мышь, с помощью которой указываются точки соединений и осуществляется протягивание соединительных линий.

Таким образом, легко создать новую модель системы. Однако описание подготовки новых моделей для Simulink в тематику данной книги не входит, поскольку книга посвящена лишь описанию базовой системы MATLAB. Заинтересованные читатели могут обратиться к изданиям. Тем не менее приведенные сведения позволят заинтересованному читателю начать работу с Simulink.

9.gif

Изображение:

10.gif

Изображение:

10. Вызов справки MATLAB

Вызов справки MATLAB

Последняя кнопка панели инструментов Help (Помощь) открывает окно с перечнем разделов справочной системы. Это окно было показано на рис. 4.8. В уроке 4 мы подробно ознакомились с работой со справочной системой, так что на этом можно закончить описание средств системы MATLAB, доступ к которым обеспечивает панель инструментов.

11. Средства контроля рабочей области и файловой системы

Средства контроля рабочей области и файловой системы

Браузер рабочей области

Векторы и матрицы могут занимать большой объем памяти. Конечно, речь не идет о векторах или матрицах, содержащих несколько элементов или даже несколько десятков элементов. Хотя и в этом случае оценка их размеров полезна при разработке алгоритмов матричных вычислений и оценке их эффективности в части использования памяти.

Как отмечалось, в левой части окна системы MATLAB 6.0 имеется окно специального браузера рабочей области - Workspace Browser. Он служит для просмотра ресурсов рабочей области памяти. Браузер дает наглядную визуализацию содержимого рабочей области. Окно браузера рабочей области выполняет и другие важные функции - позволяет просматривать существующие в памяти объекты, редактировать их содержимое и удалять объекты из памяти. Для вывода содержимого объекта достаточно выделить его имя с помощью мыши и щелкнуть на кнопке

Open (Открыть). Объект можно открыть и двойным щелчком на его имени в списке. Откроется окно редактирования массива Array Editor, показанное на рис. 5.11 применительно к матрице М2.

Рис. 5.11. Пример просмотра содержимого матрицы

Окно редактирования матрицы дает удобный доступ для редактирования любого элемента матрицы по правилам, принятым при работе с электронными таблицами. [ В уроке 23 показано, как использовать Microsoft Excel для ввода матриц. - Примеч. ред. ] . Основное из них - быстрый доступ к любому элементу матрицы. Можно также менять тип значений элементов, выбирая его из списка, предоставляемого меню Numeric format (Формат чисел). В окне также выводятся данные о числе строк и столбцов матрицы.

11.gif

Изображение:

11b.gif

Изображение:

12. Команды просмотра рабочей области who и whos

Команды просмотра рабочей области who и whos

Следует отметить, что просмотр рабочей области возможен и в командном режиме, без обращения к браузеру Workspace Browser. Команда who выводит список определенных переменных, а команда whos - список неременных с указанием их размера и объема занимаемой памяти. Следующие примеры иллюстрируют действие этих команд:

» V=:

Your variables are:

double array

double array

double array

Если вы хотите просмотреть данные одной переменной, например М, следует использовать команду whos M. Естественно, просмотр рабочей области с помощью браузера рабочей области (Workspace Browser) более удобен и нагляден.

13. Браузер файловой структуры

Браузер файловой структуры

Для просмотра файловой структуры MATLAB служит специальный браузер файловой системы (Path Browser), который запускается при обычной загрузке системы. Если был установлен упрощенный интерфейс, то для запуска браузера файловой системы используется окно Current Directory (Текущая папка). На рис. 5.12 в левой части показано окно этого браузера.

Нетрудно заметить, что браузер файловой системы построен по типу общеизвестного Проводника (Explorer) операционных систем Windows 95/98/Me/2000/NT4. Окно дает возможность просмотра файловой системы ПК и выбора любого файла. Для примера на рис. 5.12 показан выбор m-файла функции синуса.

Исполнив команду Open (Открыть) из контекстного меню правой клавиши мыши или дважды щелкнув по выделенной строке с именем файла, можно ввести этот файл в окно редактора/отладчика m-файлов. При этом редактор запустится автоматически и его окно с готовым для редактирования выбранным файлом появится на экране рис. 5.12.

Рис. 5.12. Пример окна браузера Path Browser

Примечание

Обратите внимание на то, что m-файл функции синуса содержит только комментарии по этой функции, которые используются справочной системой. Самого определения функции синуса на языке программирования системы MATLAB нет. Это связано с тем, что данная функция является встроенной в ядро системы. Так что модифицировать такие функции попросту нельзя. Ничто, однако, не мешает вам создать свой метод (и алгоритм) вычисления встроенных функций и оформить их в виде m-файлов, дав им свои имена - например, mysin.m.

Таким образом, браузер просмотра файловой структуры позволяет детально ознакомиться с файловой системой MATLAB и вывести любой из m-файлов или файлов демонстрационных примеров для просмотра, редактирования и модификации.

12.gif

Изображение:

14. Работа с меню

Работа с меню

Команды, операции и параметры

Открытая позиция строки меню содержит различные операции и команды. Выделенная команда или операция исполняется при нажатии клавиши Enter (Ввод). Выполнение команды можно также осуществить щелчком мыши или нажатием на клавиатуре клавиши, соответствующей выделенному символу в названии команды.

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

Параметр (option)- это значение определенной величины, действующее во время текущей сессии. Параметрами обычно являются указания на применяемые наборы шрифтов, размеры окна, цвет фона и т. д.

15. Меню системы

Меню системы

Перейдем к описанию основного меню системы MATLAB 6.0. Это меню (см. рис. 5.1 сверху) выглядит довольно скромно и содержит всего шесть пунктов:

    File - работа с файлами;

    Edit - редактирование сессии;

    View - вывод и скрытие панели инструментов;

    Web - доступ к Интернет-ресурсам;

    Windows - установка Windows-свойств окна;

    Help - доступ к справочным подсистемам.

По сравнению с версией 5.3.1 добавлена единственная позиция Web, дающая доступ к Интернет-ресурсам, описанный в уроке 1.

16. Подменю File

Подменю File

Подменю File содержит ряд операций и команд для работы с файлами. Оно показано на рис. 5.13. Число операций и команд значительно сокращено по сравнению с тем же меню у предшествующей версии системы MATLAB.

Теперь меню File содержит следующие операции:

    New - открывает подменю с позициями:

    M-file - открытие окна редактора/отладчика m-файлов;

    Figure - открытие пустого окна графики;

    Model - открытие пустого окна для создания Simulink-модели;

    GUI - открытие окна разработки элементов графического интерфейса пользователя.

    Open - открывает окно загрузки файла.

    Close Command Windows - закрывает окно командного режима работы (оно при этом исчезает с экрана).

    Import data - открывает окно импорта файлов данных.

    Save Workspace As... - открывает окно записи рабочей области в виде файла с заданным именем.

    Set Path - открывает окно установки путей доступа файловой системы.

    Preferences... - открывает окно настройки элементов интерфейса.

    Print... - открывает окно печати всего текущего документа.

    Print Selection... - открывает окно печати выделенной части документа.

    Exit - завершает работу с системой.

Рис. 5.13. Меню файловых операций File

13.gif

Изображение:

17. Открытие окон для подготовки новых файлов

Открытие окон для подготовки новых файлов

Команда New, как отмечено, открывает окна для подготовки новых файлов. Для трех типов файлов (m-файлы, графические файлы и файлы Simulink-моделей) окна их редакторов уже описывались. Новой является позиция GUI подменю File. Она открывает окно редактора элементов пользовательского интерфейса, показанное на рис. 5.14.

Рис. 5.14. Окно редактора элементов GUI

К подробному описанию этого окна мы еще вернемся. А пока отметим, что работа с редактором довольно очевидна.

14.gif

Изображение:

Команды Open... (Открыть) и Import data... (Импортировать данные) выводят стандартные окна (см. рис. 5.5) для загрузки m-файлов и файлов данных. Команда Save Workspace As... (Сохраните рабочую область как...) открывает стандартное окно записи файлов с расширением.mat. Они хранят определения переменных, массивов, функций пользователя и иных объектов, созданных в ходе текущей сессии работы. Эти команды в силу общеизвестности в более подробных комментариях не нуждаются.

19. Установка путей доступа файловой системы

Установка путей доступа файловой системы

Команда Set Path... (Установить путь) открывает окно редактора путей доступа файловой системы. Это окно показано на рис. 5.15.

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


Рис. 5.15. Окно редактора путей доступа файловой системы

15.gif

Изображение:

20. Настройка элементов интерфейса

Настройка элементов интерфейса

Окно настройки элементов интерфейса представлено на рис. 5.16.


Рис. 5.16. Окно настройки элементов интерфейса

Интерфейс MATLAB 6.0 стал настолько удобным и даже изысканным, что мало вероятно, что кому-либо захочется менять его в мере, большей, чем это предусмотрено командами подменю View [ Это может потребоваться даже для настройки под особенности операционной системы. Например, для уточнения расположения вашей программы чтения PDF-файлов, вам, возможно, придется вручную удалить апострофы из пути к ее исполняемому файлу. - Примеч. ред. ]. Однако такая возможность есть - команда Preferences... (Предпочтения) выводит окно детальной настройки элементов интерфейса (рис. 5.16). В левой части этого окна имеется древообразный список элементов интерфейса системы, а в правой части-поле задания параметров для выбранного типа элементов. Поскольку изменение параметров производится обычно очень редко, мы не будем детально рассматривать это окно. Заинтересованный читатель наверняка разберется с нужными ему параметрами самостоятельно.

Рис. 5.17. Окно печати

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


Рис. 5.18. Окно свойств печати

Следует отметить, что окна печати - типичные для операционной системы Windows 95/98/Me/2000/NT4. Их вид зависит от примененного принтера, точнее от установленного для него драйвера. Установки окон довольно очевидны, поэтому более подробно они не описываются. Обратите внимание на полную русификацию окна печати - это связано с тем, что использовалась локализованная для России версия операционной системы Windows 98. В то же время окно свойств принтера русифицировано лишь частично.

22. Меню Edit - средства редактирования документов

Меню Edit - средства редактирования документов

Меню Edit (рис.5.19) содержит операции и команды редактирования, типичные для большинства приложений Windows:

    Undo (Отменить) - отмена результата предшествующей операции;

    Redo (Повторить) - отмена действия последней операции Undo;

    Cut (Вырезать) - вырезание выделенного фрагмента и перенос его в буфер;

    Сору (Копировать) - копирование выделенного фрагмента в буфер;
    О Paste (Вставить) - вставка фрагмента из буфера в текущую позицию курсора;

    Clear (Очистить) - операция очистки выделенной области;

    Select All (Выделить) - выделение всей сессии;

    Delete (Стереть) - уничтожение выделенного объекта;

    Clear Command Windows (Очистить командное окно) - очистка текста сессии (с сохранением созданных объектов);

    > M-file из меню File. После этого в окне редактора можно создавать свой файл, пользоваться средствами его отладки и запуска. Перед запуском файла его необходимо записать на диск, используя команду Filе > Save as в меню редактора.

    Рис. 5.20. Редактор/отладчик файлов при записи файла на диск

    На рис. 5.20 показано окно редактора/отладчика с текстом простого файла в окне редактирования и отладки.

    Подготовленный текст файла (это простейшая и наша первая программа на языке программирования MATLAB) надо записать на диск. Для этого используется команда Save As, окно которой видно на рис. 5.20 внутри окна системы редактора/ отладчика. Работа с окном команды Save As уже описывалась.

    После записи файла на диск можно заметить, что команда Run в меню Tools (Инструменты) редактора становится активной (до записи файла на диск она пассивна) и позволяет произвести запуск файла. Запустив команду Run, можно наблюдать исполнение m-файла; в нашем случае - это построение рисунка в графическом окне и вывод надписи о делении на ноль в ходе вычисления функции sin(x)/x в командном окне системы (рис. 5.21).

    На первый взгляд может показаться, что редактор/отладчик - просто лишнее звено в цепочке «пользователь - MATLAB». И в самом деле, текст файла можно было бы ввести в окно системы и получить тот же результат. Однако на деле редактор/отладчик выполняет важную роль. Он позволяет создать m-файл (программу) без той многочисленной «шелухи», которая сопровождает работу в командном режиме. Далее мы убедимся, что текст такого файла подвергается тщательной синтаксической проверке, в ходе которой выявляются и отсеиваются многие ошибки пользователя. Таким образом, редактор обеспечивает синтаксический контроль файла.

    Редактор имеет и другие важные отладочные средства - он позволяет устанавливать в тексте файла специальные метки, именуемые точками прерывания (breakpoints). При их достижении вычисления приостанавливаются, и пользователь может оценить промежуточные результаты вычислений (например, значения переменных), проверить правильность выполнения циклов и т. д. Наконец, редактор позволяет записать файл в текстовом формате и увековечить ваши труды в файловой системе MATLAB.

    25. Цветовые выделения и синтаксический контроль

    Цветовые выделения и синтаксический контроль

    Редактор/отладчик m-файлов выполняет синтаксический контроль программного кода по мере ввода текста. При этом используются следующие цветовые выделения:

    • ключевые слова языка программирования - синий цвет;

      операторы, константы и переменные - черный цвет;

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

СОЗДАНИЕ ГРАФИЧЕСКИХ ПРИЛОЖЕНИЙ В СРЕДЕ MATLAB

Методические указания к лабораторной работе по дисциплине «Автоматизация инженерных вычислений» для студентов всех форм обучения направления 230100 - Информатика и вычислительная техника,

И.А. Селиванова, А.А. Букин

В.А. Блинов

Екатеринбург УрФУ 2012

1. Принципы создания графических интерфейсов

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

1. Разработка графического интерфейса пользователя (Graphical User Interface), которая заключается в расположение элементов управления в пределах окна.

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

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

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

Цель данной лабораторной работы - изучение основных принципов создания графических приложений в пакете MATLAB.

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

Рис. 1 Окно приложения

3. Среда GUIDE

Перейдите в интерактивную среду разработки графического интерфейса - GUIDE, выполнив команду guide в командной строке. В появившемся окне выберите пункт Blank GUI на закладкеCreate New GUI и нажмите ОК. Откроется окно редактора интерфейса (рис. 2).

Рис. 2 Окно редактора интерфейса

Редактор пользовательского интерфейса содержит:

* строку меню;

* панель инструментов управления приложением;

* заготовку окна приложения с нанесенной сеткой;

* вертикальную и горизонтальную линейки;

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

Редактор приложения MATLAB позволяет разместить различные элементы интерфейса. Для этого нажмите соответствующую кнопку на панели инструментов в левой части окна редактора интерфейса, и поместите выбранный объект на форму.

Приложение в данный момент находится в режиме редактирования. Любой объект можно удалить из окна при помощи кнопки Delete , предварительно его выделив. Запуск приложения производится при помощи кнопки Run либо выбором соответствующего пункта меню Tools . При запуске программа предложит сохранить проект. Выберите имя сохраняемого файла, например, mygui . fig , и директорию для сохранения, затем нажмите Save . Приложение запускается в отдельном окне с заголовком по умолчанию. Пользователь может обращаться к размещенным в приложении элементам управления.

3.1 Программирование событий

Графическое приложение в MATLAB хранится в двух файлах с расширениями.fig и.m , первый из них содержит описание формы окна, а второй - код программы. Добавление элемента интерфейса в редакторе приводит к автоматической генерации шаблона обработчика события (например, обработчика нажатия кнопки) в файле с кодом программы.

Создадим приложение, окно которого содержит поле вывода графических элементов (Axes ), содержащее координатные оси, и две кнопки (Push Button ), предназначенные для построения графика функции и очистки поля.

Разместите на форме первую кнопку и объект Axes так, как показано на рис. 3. На кнопке автоматически размещается надпись Push Button . Каждый графический элемент обладает набором свойств, определяющих его внешний вид и поведение. Имя графического элемента Tag позволяет различать элементы интерфейса. Следует дать кнопке описывающее её функционал имя.

Рис. 3 Размещение компонентов

Для этого нажмите правой кнопкой мыши на кнопке, а в открывшемся списке вызовите редактор свойств Property Inspector , либо два раза кликните левой кнопкой мыши(рис. 4).

Рис. 4 Окно Property Inspector

В открывшемся окне редакторе свойств измените значение Tag на btnPlot .Это имя впоследствии будет использоваться для доступа к свойствам кнопки при программировании. Можно заметить, что имя дано в соответствии с элементом управления и его будущей функцией (button - кнопка, Plot - строить). Аналогичным образом дайте объекту Axes имя axMain .

Когда в запущенном приложении пользователь нажимает на кнопку, то вызывается обработчик событий, имя которого формируется из имени элемента, нижнего подчеркивания и слова Callback (отзыв). Сейчас он не содержит операторов. Желательно задавать имена элементов до обращения к обработчику, чтобы не пришлось менять название генерируемой функции в дальнейшем. Чтобы вызвать обработчик, вызовите правой кнопкой мыши раскрывающийся список для btnPlot , выберите в нем View Callbacks и запустите Callback , открывшийся обработчик события измените в соответствии с листингом 1.

Листинг 1.

btnPlot .

mygui.m :

x = -2.5: 0.6: 2;

drawPlot(x, y, handles);

Чтобы создать функцию drawPlot , в интерфейсе MATLAB выберите пункт меню File , затем в раскрывающемся списке New выберите элемент Script . Созданный файл функции оформите в соответствии с листингом 2 и сохраните в директорию с файлом mygui . m .

Листинг 2.

Функция прорисовки графика, вызываемая из btnPlot .

drawPlot.m :

changeMarker(handles)

changeColor(handles)

Для функций changeMarker и changeColor создайте пустые Script файлы (заглушки). Сохраните оба файла и запустите приложение из редактора приложений. Нажатие на кнопку в запущенном приложении должно приводить к отображению графика функции в объекте axMain . Закройте окно приложения и продолжите работу в редакторе форм. Добавьте вторую кнопку с именем btnC lear . Перейдите к функции обработки события второй кнопки. Оформите вызов функции p lotClearDialog , как показано в листинге 4.

Листинг 3.

Обработка события кнопки с именем btnC lear .

mygui.m :

Сохраните функцию plotClearDialog в одноименном Script файле, впоследствии мы ее модифицируем.

Листинг 4.

Функция очистки графика, вызывается из btnC lear .

plotClearDialog.m :

Запустите приложение и убедитесь, что нажатие на первую кнопку приводит к отображению графика функции, а вторая служит для очистки графика.

3.2 Конструирование интерфейса

3.2.1 Управление свойствами объектов

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

3.2.2 Проектирование формы

Продолжите работу над приложением, следует изменить надписи на кнопках, например, на «Построить» и «Очистить ». Кнопки имеют свойство String , принимаемое им значение есть отображаемая на кнопке строка. Измените в инспекторе надписи кнопок так, как было указано ранее. Запустите приложение.

3.2.3 Изменение свойств из программного кода

Свойства объектов можно устанавливать программно в ходе работы приложения. Усовершенствуйте приложение так, чтобы при запуске доступна только кнопка «Построить» , а при нажатии на кнопку «Построить» выводится график, и она становится недоступной. В свою очередь, при нажатии должна стать доступной кнопка «Очистить ».

Блокировка кнопки зависит от свойства Enable , при значении on доступна, a при off нет. Установка значений свойствам объектов в программе производится при помощи функции set .

Функция set вызывается с тремя параметрами - ссылкой на объект, свойство которого нужно поменять, названием свойства и его значением. Последние два аргумента заключаются в апострофы. Аргументы hObject и handles функций-обработчиков содержат указатели. В hObject хранится указатель на тот объект, событие которого обрабатывается в данный момент, a handles является вектором указателей на все объекты на форме. Например, handles . btn Plot является указателем на кнопку btnPlot . Установите в редакторе свойств для кнопки «Очистить » свойство Enable равным off , затем измените программу в соответствии с листингом 5.

Листинг 5.

Обработка состояний кнопок.

mygui . m :

function btnPlot_Callback(hObject, eventdata, handles)

x = -2.5: 0.6: 2;

drawPlot(x, y, handles);

plotDialog(hObject, handles);

function btnClear_Callback(hObject, eventdata, handles)

set(hObject, "Enable", "off");

set(handles.btnPlot, "Enable", "on");

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

3.3 Работа над приложением

3.3.1 Запуск приложения

Запуск приложения осуществляется не только из редактора приложений. Для запуска приложения достаточно в качестве команды задать его имя в командной строке >>mygui

Каталог с приложением должен содержаться в путях поиска MATLAB или являться текущим.

3.3.2 Оформление интерфейса

Часто требуется, чтобы небольшое перемещение мыши вызывало изменение положения объекта на некоторый фиксированный шаг. Сетка редактора приложений позволяет осуществить такое дискретное движение. Выбор пункта Grid and Rulers меню Tools приводит к появлению диалогового окна.

Флаги Show rulers и Show grid соответствуют отображению линеек и сетки в редакторе приложений, а раскрывающийся список Grid Size позволяет выбрать размер ячеек сетки. Минимально допустимый размер - десять пикселей, он позволяет достаточно точно располагать элементы управления в окне приложений. Привязка перемещения к линиям сетки происходит при установленном флаге Snap to grid .Она позволяет размещать объекты и изменять их размер точно по линиям сетки.

3.4 Программирование элементов интерфейса

3.4.1 Флаги и рамки

Флаги Checkbox используются для изменения величин с двумя возможными значениями. Добавьте два флага с помощью панели инструментов и задайте значения String для них сетка по X и сетка по Y . Эти флаги должны устанавливать отображение соответствующей сетки на графике.

Обычно несколько элементов управления со схожим назначением группируются внутри рамки Panel сназванием «Сетка» .Измените размеры элемента axMain , освободив, справа место для рамки. Нанесите рамку на окно приложения при помощи соответствующей кнопки. В рамку добавьте два флага. Разместите поясняющие подписи рядом с флагами и установите для них значения Tag равные chbxGridX и chbxGridY , затем произведите необходимые изменения кода в соответствии с листингом 6.

Листинг 6.

Обработка событий отображения сетки.

mygui.m :

Преобразование булевских значений в строковые.

map Value.m :

if get(hObject, property)

Изменения в построении с условием наличия сетки.

drawPlot.m

3.4.2 Переключатели

Переключатели Radio Button предоставляют пользователю возможность изменять величины с несколькими возможными значениями. Всегда установлен только один переключатель из группы. С помощью них, например, можно реализовать переключение маркеров для узловых значений на квадраты или круги.

Добавьте в окно приложения новую панель Button Group (организует переключение дляRadio Button самостоятельно), укажите для неё тег MarkGroup , название «Маркеры» , затем нанесите на нее три переключателя, с именами rbMarkCir c , rbMarkSq , rbMarkNone , и надписями - «маркеры-круги» , «маркеры-квадраты» , «без маркеров» соответственно.

Состояние переключателя определяется его свойством Value : если Value равно единице, то переключатель включен. Задайте в редакторе свойств значение 1 свойству Value переключателя с надписью «без маркеров», тогда он будет включен при запуске программы.

Листинг 7.

Устанавливаем возможные значения.

mygui . m :

handles.output = hObject;

guidata(hObject, handles);

changeMarker(handles)

Функция изменяет маркер в соответствии с выбранным переключателем.

changeMarker.m :

markers = getappdata(handles.figure1, "optionsValues");

Функция возвращает текущий маркер.

getMarkerValue.m:

Функция возвращает текущий переключатель в указанной группе.

getSelectedOption.m:

index = counter;

3.4.3 Списки

При помощи раскрывающегося списка можно предоставить возможность выбора цвета линии графика. Перейдите в режим редактирования и добавьте раскрывающийся список Pop - up M enu с тегом pmColor ,элементами которого являются строки «синий» , «красный» , «зеленый» (поле String в многострочном режиме).

Запустите приложение и убедитесь, что раскрывающийся список содержит требуемые элементы. Выбор различных строк пока не приводит к изменению цвета линии - требуется запрограммировать событие Callback раскрывающегося списка.

Листинг 8.

Сохраняем вектор с цветами в контексте формы.

mygui.m :

function GuiProj_OpeningFcn(hObject, eventdata, handles, varargin)

colors = ["b", "r", "g" ];

Внесите вызов ChangeColor в обработчик списка.

mygui.m :

changeColor(handles)

Изменение цвета линии.

ChangeColor.m:

function changeColor(handles)

thePlot = getappdata(handles.axMain, "plot");

3.4.4 Полосы прокрутки

С помощью полосы скроллинга можно задавать, например, толщину линии графика. Добавьте полосу скроллинга Slider в окно приложения и задайте название scrWidth . Снабдите полосу текстовым пояснением «Толщина линии» .

Теперь следует определить соответствие между положением бегунка полосы и числовым значением свойства Value .

Выполните следующие установки из редактора свойств:

1. В Мах занесите десять, а в Min - единицу. Свойства Мах и Min полосы скроллинга отвечают за границы значений, записываемых в Value при перемещении бегунка.

2. Определите начальное положение бегунка полосы. Нажмите кнопку в строке с названием свойства и в появившемся окне Value измените значение на единицу.

3. Обратитесь к свойству SliderStep . Его значением является вектор из двух компонентов, первый из которых определяет относительное изменение Value при нажатии на кнопки со стрелками полосы скроллинга, а второй - при перетаскивании бегунка мышью. Следует установить значение и нажатие на кнопки полосы изменит Value на десять процентов, а щелчок мыши справа или слева от бегунка надвадцать. Раскройте строкуSliderStep щелчком мыши по знаку плюс слева от названия свойства и в появившихся строках х и у введите 0.1 и 0.2.

Листинг 9.

Изменение толщины линии.

mygui . m :

thePlot = getappdata(handles.axMain, "plot");

Изменение толщины линии при построении.

drawPlot.m

В данном случае реализован перехват исключительных ситуаций с помощью связки try и catch (например, когда Plot еще не инициализирован). При этом catch остается пустым, потому что никаких действий предпринимать не надо, изменение линии просто не сработает.

3.4.5 Область ввода текста

Очень часто требуется вводить какие-либо данные в приложение. Для этого существуют специальные области ввода текста. Добавим возможность изменять заголовок графика.

На панели инструментов выберем область ввода текста Edit Text и зададим для него имя editTitle . Изменим значение текстового поля по умолчанию на пустое (очистим поле String ).

Листинг 10.Изменение заголовка графика.

mygui . m

if ispc

else

end

title(get(hObject, "String"))

drawPlot.m

графический приложение программирование matlab

3.5 Диалоговые окна и меню приложения

3.5.1 Окно подтверждения

В системе MATLAB существует возможность добавления диалоговых окон (рис. 5), например, для отката случайных нажатий кнопок. Следует вывести диалоговое окно, в котором пользователь подтвердит, действительно ли требуется очистить график.

Рис. 5 Диалоговое окно

Функция questdlg создаетдиалоговое окно подтверждения, которая в самом простом случае имеет два входных параметра - строки с текстом внутри диалогового окна изаголовок окна. Но при добавлении еще трех строк мы можем изменить имена кнопок (по умолчанию Yes , No , Cancel ).

Изменим существующий файлplotClearDialog . m так, как показано в листинге 11.

Листинг 11.

Добавим возникновение диалогового окна при вызове

plotClearDialog.m :

function plotClearDialog(hObject, handles)

yesButton = "Да";

noButton = "Нет";

message = "Очистить график";

if strcmp(button, yesButton)

cla

end

Уберем из обработчика кнопки «Очистить » разблокирование кнопки для построения.

mygui.m :

function btnClear_Callback(hObject, eventdata, handles)

plotClearDialog(hObject, handles);

3.5.2 Чтение данных из файла

Среда MATLAB предоставляет возможность сохранять и загружать объекты в бинарном или текстовом формате. Для загрузки сохранения файла используются команды load иsave ,загружающие и сохраняющие файлы соответственно.Создайте и запишите входные данные в файле data . txt , имя сохраняемого вектора должно быть mymatrix .

Функция errordlg предназначена для создания диалогового окна с сообщением об ошибке. Входными аргументами errordlg являются строки с текстом и заголовком окна.

Листинг 12. Диалог выбора источника данных для графика.

plotDialog.m :

default = "По умолчанию";

fromFile = "Из файла";

errorCaption = "Ошибка!";

result = questdlg(dialogCaption, "mygui", default, fromFile, default);

if strcmp(result, fromFile)

try

mymatrix = load("data.txt");

catch

end

sMatrix = size(mymatrix);

errordlg(errorMessage, errorCaption)

end

x = mymatrix(:,1);

y = mymatrix(:,2);

end

if strcmp(result, default)

x = -2.5: 0.6: 2;

y = exp(-x.^2);

end

drawPlot(x, y, handles)

Уберем из обработчика кнопки «Построить» функцию drawPlot и заменим на plotDialog .

mygui.m

function btnPlot_Callback(hObject, eventdata, handles)

set(hObject, "Enable", "off");

set(handles.btnClear, "Enable", "on");

plotDialog(hObject, handles)

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

3.5.4 Оконные меню

В пакете MATLAB так же можно реализовать контекстные и оконные меню. Свойство Menu Bar окна приложения объекта figure отвечает за наличие стандартных меню File , Edit , Tools , Window и Help в работающем приложении. Размещение и программирование меню производится при помощи редактора меню.

Запустите редактор меню (рис. 6) из панели управления, или выбором пункта меню Tools , затем Menu Editor .

Рис. 6 Окно редактора меню

Окно редактора меню содержит две вкладки для: Menu Bar - для строки меню приложения, Context Menu s - для контекстного меню. Нажмите на соответствующую кнопку на панели инструментов редактора меню и создайте меню приложения. В навигаторе появилась строка Untitled 1 (рис. 7), сделайте ее текущей щелчком мыши.

Рис. 7 Окно создания меню приложения

В поле Label задается надпись элемента, a Tag - имя объекта. Введите текст "График " в строку Label и задайте имя mnGraph . Далее следует создать пункты меню. Нажав на кнопку New Menu Item , создастся новый подпункт меню. Установите надпись пункта « Построить» и дайте ему имя mnGraphPlot . Добавьте еще один подпункт меню, сделав предварительно текущей строку График в навигаторе. Аналогичным образом задайте надпись « Очистить» и имя mnGraphClear . Навигатор меню должен содержать структуру, изображенную на рисунке 8. Меню График имеет первый уровень, а пункты « Построить» , « Очистить» - второй.

Рис. 8 Меню приложения

Запустите программу. Выбор меню График приводит к раскрытию меню. Пока при обращении к пунктам « Построить» и « Очистить» ничего не происходит, следует запрограммировать обработчики событий пунктов меню. Добавьте обработчики меню вmygui . m и вplotClearDialog . m .

Листинг 13.

Устанавливаем необходимые значения кнопок для построения.

mygui.m :

plotDialog(hObject, handles)

plotClearDialog(hObject, handles)

Устанавливаем необходимые значения кнопок для удаления.

plotClearDialog.m :

3.5.6 Контекстные меню

Элементы управления, в том числе и созданные в ходе работы приложения, могут иметь собственное контекстное меню, которое доступны через нажатие ЛКМ.

Перейдите к вкладке Context Menus в редакторе меню и нажмите кнопку создания контекстного меню, в навигаторе меню появляется строка для меню. Задайте ему имя cmLine . Обратите внимание, что на панели свойств нет строки ввода Label , т. к. раскрывающееся меню не должно иметь надписи. Создайте три пункта меню при помощи кнопки New Menu Item . Определите для них надписи синий, красный , зеленый и имена cmLineBlue , cmLineRed , cmLineGreen соответственно (рис. 9).

Рис. 9 Контекстное меню

В работающем приложении щелчок правой кнопкой мыши по линии графика не приводит к отображению контекстного меню, так как сейчас контекстное меню cmLine присутствует в приложении как отдельный объект, не привязанный к построенной линии. Именно поэтому каждый созданный объект, имеет свойство UIContextMenu , значением которого может являться указатель на имеющееся контекстное меню. Следует установить свойству UIContextMenu значение указателя на меню cmLine , содержащееся в структуре handles . Построение линии в приложении производится или при нажатии пользователем кнопки « Построить» , или при выборе пункта « Построить» меню График . Напишем обработчик контекстного меню в mygui . m .

Листинг 14.

Изменение значения для контекстного меню.

mygui.m :

function cmLineBlue_Callback(hObject, eventdata, handles)

set(handles.pmColor, "Value", 1)

changeColor(handles)

function cmLineRed_Callback(hObject, eventdata, handles)

set(handles.pmColor, "Value", 2)

changeColor(handles)

function cmLineGreen_Callback(hObject, eventdata, handles)

set(handles.pmColor, "Value", 3)

changeColor(handles)

Внесение изменений в построение.

drawPlot . m

set(newPlot, "UIContextMenu", handles.cmLine)

3.5.7 Ввод пользовательской функции

Добавьте на форму новую область текста Edit Text с тегом userFunction и надпись «Пользовательский ввод». С помощью этого поля пользователь сможет ввести функцию с клавиатуры, и если ввод не корректен, следует вывести сообщение об ошибке errordlg . Изменим функцию plotDialog . m .

Листинг 15.

Добавление пользовательского ввода.

plotDialog . m

function plotDialog(hObject, handles)

default = "По умолчанию";

fromFile = "Из файла";

errorMessage = "Неизвестный формат файла с данными";

errorCaption = "Ошибка!";

dialogCaption = "Источник данных";

if strcmp(result, fromFile)

try

mymatrix = load("data.txt");

catch

errordlg(errorMessage, errorCaption)

end

sMatrix = size(mymatrix);

if (sMatrix(2) ~= 2 | ndims(mymatrix)~=2 | ~isnumeric(mymatrix))

errordlg(errorMessage, errorCaption)

end

x = mymatrix(:,1);

y = mymatrix(:,2);

end

if strcmp(result, userInput)

try

x = -2.5: 0.6: 2;

y = subs(y);

catch

end

end

if strcmp(result, default)

x = -2.5: 0.6: 2;

y = exp(-x.^2);

end

drawPlot(x, y, handles)

4. Задание на лабораторную работу

Цель данной лабораторной работы применение навыков создания приложений в среде GUIDE пакета MATLAB.

Постановка задачи: необходимо создать приложение, окно которого содержит графический элемент Axes , три кнопки, три поля ввода текста.

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

5. Заключение

Следует отметить, что среда GUIDE позволяет достаточно просто написать приложение для проведения собственных исследований. Основное преимущество визуальной среды GUIDE по сравнению со многими другими современными языками программирования состоит в том, что разработчик может использовать большой набор готовых функций MATLAB, которые реализуют алгоритмы решения широкого спектра задач.

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

Список литературы

1. Ануфриев И.Е. Самоучитель Matlab 5.3/6.x / И.Е. Ануфриев. СПб.: БХВ-Петербург, 2003. 736 с.

2. Дьяконов В.П. MATLAB 6.5 SPI/7 + Simulink 5/6 в математике и моделировании / В.П. Дьяконов. М.: СОЛОНПресс, 2005. 576 с. (Серия «Библиотека профессионала»).

Приложение

Листинг исходного кода функций

mygui . m

function varargout = mygui(varargin)

gui_Singleton = 1;

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

"gui_Singleton", gui_Singleton,...

"gui_OpeningFcn", @mygui_OpeningFcn,...

"gui_OutputFcn", @mygui_OutputFcn,...

"gui_LayoutFcn", ,...

"gui_Callback", );

if nargin && ischar(varargin{1})

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

end

if nargout

= gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function mygui_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

optionsList = [ handles.rbMarkNone handles.rbMarkSq handles.rbMarkCirc ];

optionsValues = [ "n" "s" "o" ];

setappdata(hObject, "optionsList", optionsList);

setappdata(hObject, "optionsValues", optionsValues);

colors = ["b", "r", "g" ];

setappdata(hObject, "colors", colors);

handles.output = hObject;

guidata(hObject, handles);

function varargout = mygui_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function btnPlot_Callback(hObject, eventdata, handles)

set(hObject, "Enable", "off");

set(handles.btnClear, "Enable", "on");

plotDialog(hObject, handles)

function btnClear_Callback(hObject, eventdata, handles)

plotClearDialog(hObject, handles);

function chbxGridX_Callback(hObject, eventdata, handles)

set(handles.axMain, "XGrid", mapValue(hObject, "Value"));

function chbxGridY_Callback(hObject, eventdata, handles)

set(handles.axMain, "YGrid", mapValue(hObject, "Value"));

function MarkGroup_SelectionChangeFcn(hObject, eventdata, handles)

changeMarker(handles)

function pmColor_Callback(hObject, eventdata, handles)

changeColor(handles)

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

end

function scrWidth_Callback(hObject, eventdata, handles)

try

thePlot = getappdata(handles.axMain, "plot");

set(thePlot, "LineWidth", round(get(hObject, "value")))

catch

end;

function scrWidth_CreateFcn(hObject, eventdata, handles)

if isequal(get(hObject,"BackgroundColor"), get(0,"defaultUicontrolBackgroundColor"))

set(hObject,"BackgroundColor",[.9.9.9]);

end

function editTitle_Callback(hObject, eventdata, handles)

title(get(hObject, "String"))

function editTitle_CreateFcn(hObject, eventdata, handles)

if ispc

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

else

set(hObject,"BackgroundColor",get(0,"defaultUicontrolBackgroundColor"));

end

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

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

end

function mnGraphPlot_Callback(hObject, eventdata, handles)

plotDialog(hObject, handles)

set(handles.mnGraphPlot,"Enable","off");

set(handles.mnGraphClear,"Enable","on");

set(handles.btnPlot,"Enable","off");

set(handles.btnClear,"Enable","on");

function mnGraphClear_Callback(hObject, eventdata, handles)

plotClearDialog(hObject, handles)

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

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

end

changeColor.m

function changeColor(handles)

try

thePlot = getappdata(handles.axMain, "plot");

colors = getappdata(handles.figure1, "colors");

set(thePlot, "Color", colors(get(handles.pmColor, "value")))

catch

;

end

changeMarker.m

function changeMarker(handles)

try

thePlot = getappdata(handles.axMain,"plot");

markers = getappdata(handles.figure1,"optionsValues");

set(thePlot, "Marker", markers(getMarkerValue(handles)))

catch

;

end

drawPlot.m

function drawPlot(xVector, yVector, handles)

newPlot = plot(xVector, yVector);

setappdata(handles.axMain, "plot", newPlot);

changeMarker(handles)

changeColor(handles)

set(handles.axMain, "XGrid", mapValue(handles.chbxGridX, "Value"));

set(handles.axMain, "YGrid", mapValue(handles.chbxGridY, "Value"));

set(newPlot, "LineWidth", round(get(handles.scrWidth, "value")))

title(get(handles.editTitle, "String"))

getMarkerValue.m

function markerValue = getMarkerValue(handles)

markerValue = getSelectedOption(getappdata(handles.figure1, "optionsList"));

getSelectedOption.m

function index = getSelectedOption(hObjectList)

index = 1;

for counter = (1: length(hObjectList))

if get(hObjectList(counter), "value") == 1

index = counter;

return

end

end

mapValue.m

function retval = mapValue(hObject, property)

if get(hObject, property)

retval= "On";

else

retval="Off";

end

plotClearDialog.m

function plotClearDialog(hObject, handles)

yesButton = "Да";

noButton = "Нет";

message = "Очистить график";

button = questdlg(message, "mygui", yesButton, noButton, noButton);

if strcmp(button, yesButton)

cla

set(handles.axMain, "YGrid", mapValue(handles.chbxGridY, "Value"))

set(handles.axMain, "XGrid", mapValue(handles.chbxGridX, "Value"))

set(handles.btnClear,"Enable","off");

set(handles.btnPlot,"Enable","on");

set(handles.mnGraphPlot,"Enable","on");

set(handles.mnGraphClear,"Enable","off");

end

plotDialog.m

function plotDialog(hObject, handles)

default = "По умолчанию";

fromFile = "Из файла";

userInput = "Пользовательский ввод";

errorMessage = "Неизвестный формат файла с данными";

errorCaption = "Ошибка!";

dialogCaption = "Источник данных";

result = questdlg(dialogCaption, "mygui", default, fromFile, userInput, default);

if strcmp(result, fromFile)

try

mymatrix = load("data.txt");

catch

errordlg(errorMessage, errorCaption)

end

sMatrix = size(mymatrix);

if (sMatrix(2) ~= 2 | ndims(mymatrix)~=2 | ~isnumeric(mymatrix))

errordlg(errorMessage, errorCaption)

end

x = mymatrix(:,1);

y = mymatrix(:,2);

end

if strcmp(result, userInput)

try

x = -2.5: 0.6: 2;

y = sym(get(handles.userFunction, "String"));

y = subs(y);

catch

errordlg("Ошибка разбора пользовательской функции", errorCaption)

end

end

if strcmp(result, default)

x = -2.5: 0.6: 2;

y = exp(-x.^2);

end

drawPlot(x, y, handles)

Размещено на Allbest.ru

Подобные документы

    Изучение программирования в MATLAB. Использование команд Save и Load, операторы ввода и вывода для работы в командном окне. Отладка собственных программ. Интерфейс MATLAB. Отличия поздней версии MATLAB от более ранних. Средство Source Control Interface.

    контрольная работа , добавлен 25.12.2011

    Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.

    курсовая работа , добавлен 15.12.2010

    Общая характеристика и свойства системы Matlab - пакета прикладных программ для решения задач технических вычислений. Разработка математической модели в данной среде, программирование функций для задающего воздействия. Проектирование GUI-интерфейса.

    курсовая работа , добавлен 23.05.2013

    Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.

    курсовая работа , добавлен 27.09.2014

    Выбор параметров и структурой схемы. Программирование скрипта (m-файла) для задания исходных параметров. Расчет параметров регулятора, проектирование его S-функции. Программирование GUI-интерфейса: разработка внешнего вида и проектирование обработчиков.

    курсовая работа , добавлен 18.05.2013

    Особенности работы в режиме командной строки в системе Matlab. Переменные и присваивание им значений. Комплексные числа и вычисления в системе Matlab. Вычисления с использованием функции sqrt. Неправильное использование функций с комплексными аргументами.

    дипломная работа , добавлен 30.07.2015

    Исследование линейных динамических моделей в программном пакете Matlab и ознакомление с временными и частотными характеристиками систем автоматического управления. Поиск полюса и нуля передаточной функции с использованием команд pole, zero в Matlab.

    лабораторная работа , добавлен 11.03.2012

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

    реферат , добавлен 05.01.2010

    Создание приложений: ProgressBar, вычисление по формуле, двумерный массив, калькулятор, медиа-плеер, одномерный массив, список, текстовый редактор. Создание различных обработчиков событий. Разработка заставки, окна ввода пароля и главной формы.

    лабораторная работа , добавлен 22.01.2015

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

После загрузки MATLAB появляется Рабочий стол MATLAB , содержащий визуальные инструменты для управления файлами, переменными и приложениями, связанными с системой MATLAB (рис. 4.1). Рабочий стол состоит из строки заголовка, строки главного меню, панели инструментов, области для размещения окон инструментальных средств и строки состояния с кнопкой Start. На Рабочем столе может быть представлено любое сочетание из представленных ниже инструментальных средств:

· окно запуска приложений (Launch Pad);

· окно команд (Command Window);

· окно истории команд (Command History);

· окно просмотра помощи (Help Browser);

· окно просмотра текущей директории (Current Directory Browser);

· окно просмотра Рабочей области (Workspace Browser);

· окно Редактора данных (Array Editor);

· Редактор m– файлов (Editor/ Debugger);

· Профайлер (Profiler), оценивающий быстродействие команд.

Рис. 4.1. Рабочий стол системы MATLAB.

Помимо указанных инструментальных средств в систему MATLAB входят не управляемые посредством Рабочего стола графические окна (Figures), предназначенные для визуализации результатов вычислений.

Для управления окнами инструментальных средств предназначены команды меню View . Например, команда Desktop Layout открывает меню, в котором размещаются команды, предназначенные для отображения на Рабочем столе системы различных комбинаций инструментальных средств. Наиболее используемым расположением окон инструментальных средств при работе с системой MATLAB является расположение, принятое по умолчанию. Это расположение при необходимости можно установить командой View→ Desktop Layout→Default .

Для осуществления операций на файловом уровне предназначены команды меню File . Так с помощью подменю New можно открыть приложение для создания нового m – файла (Editor/ Debugger ), динамической модели(SIMULINK ), графического интерфейса пользователя (GUIDE ), а также создать новое графическое окно. Команда Save Workspace as… позволяет сохранять данные, расположенные в рабочей области, на диске в виде двоичных файлов с расширением .mat . Для этих же целей служит и команда save . Например, вызов команды save fname X позволит записать значение переменной X в файл fname.mat . Следует отметить, что возможности сохранения всего текста сессии, формируемой в командном режиме, команда save не дает, для этого служит команда diary . Например, вызов команды diary filename приведет к записи на диск всех команд в строках ввода и полученных результатов в виде текстового файла с именем filename.m. Кроме того, в системе предусмотрена возможность приостановки записи в файл с помощью команды diary off и возобновления ранее прерванной записи с помощью команды diary on.

Для загрузки рабочей области ранее сохраненной сессии предназначена команда load . Например, для загрузки ранее сохраненного файла myf_1.mat следует вызвать команду load myf_1.mat . Если команда load используется в ходе проведения сессии, то произойдет замена текущих значений переменных теми значениями, которые были сохранены ранее в считываемом МАТ-файле. При этом для задания имен загружаемых файлов может использоваться знак *, означающий загрузку всех файлов с определенными признаками. Например, load lab*.mat означает загрузку всех файлов с началом имени lab , например lab_1 , lab_2 , lab_3 и т. д.

Для завершения работы с системой можно использовать команды exit , quit или комбинацию клавиш Ctrl+Q . Если необходимо сохранить значения всех переменных системы, то перед вводом команды exit следует дать команду save . В этом случае команда load после загрузки системы считает значения сохраненных переменных и позволит начать работу с системой с того момента, когда она была прервана.

Команды меню Edit позволяют отменять(Undo ) или возвращать (Redo ) отмененное действие, обмениваться информацией с буфером обмена (Cut– Вырезать , Copy – Копировать , Paste – Вставить , PasteSpecial Специальная вставка ), полностью выделять содержимое текущего окна (Selectall ), а также очищать окно команд (ClearCommandWindow ), окно истории команд (ClearCommandHistory ) и содержимое рабочей области (ClearWorkspace ).

Команды меню Web позволяют перейти на страницу сайта фирмы разработчика системы MATLAB. Для переключения между окнами m– файлов, окнами библиотек блоков приложения SIMULINK, окнами моделей систем предназначены команды меню Windows . Доступ к справочной информации предоставляют команды меню Help .

Командное окно (Command Window) предназначено для ввода команд и вывода результатов их выполнения в текстовом режиме. Работа с командным окном происходит в диалоговом режиме. Пользователь вводит команду в командную строку после приглашения >> и нажимает Enter , после чего команда передается ядру системы MATLAB. Ядро проверяет команду на синтаксические ошибки и, в случае их отсутствия, выполняет команду и возвращает результат. В противном случае выводится сообщение об ошибке.

По умолчанию в командное окно результат выводится в числовом формате shortG . Изменить формат вывода числа можно с помощью диалогового окна Preferences , которое вызывается одноименной командой меню File . В данном окне после активизации инструментального средства Command Window из раскрывающегося списка поля Numeric format , расположенного внутри группы Text display , следует выбрать необходимый формат. Помимо этого сменить текущий формат можно также с помощью команды format . Список форматов вывода числовых данных представлен в таблице 4.1.

Таблица 4.1. Форматы вывода числовых данных.

Формат Описание Пример
short Короткое число с фиксированной точкой (под дробную часть отводится четыре разряда) 1.3333
long Длинное число с фиксированной точкой (под дробную часть отводится четырнадцать разрядов) 1.33333333333333
shortE Короткое число с плавающей точкой (под дробную часть отводится четыре разряда) 1.3333e+000
longE Длинное число с плавающей точкой (под дробную часть отводится пятнадцать разрядов) 1.333333333333338e+007
shortG Выбирается наилучшая форма представления числа из форматов short и short e
longG Выбирается наилучшая форма представления числа из форматов long и long e
hex Число выводится в шестнадцатеричной форме 4010СВ
bank Формат представления долларов и центов 69.96
+ Символьное обозначение числа: «+» – положительное число; «-» – отрицательное число; пробел – нулевое значение.
rational Число выводится в дробном виде 1/3

Заметим, что задание формата сказывается только на форме вывода чисел и не влечет за собой изменения самого числа.

Переменные и определения новых функций в системе MATLAB хранятся в особой области памяти, именуемой рабочей областью (workspace ). Для быстрого просмотра атрибутов объектов, располагающихся в рабочей области, их редактирования, сохранения и удаления предназначено Окно просмотра рабочей области (Workspace Browser) (рис. 2). В этом окне можно увидеть имя переменной, ее размер, число байтов, занимаемых переменной в памяти, и ее класс.

Конец работы -

Эта тема принадлежит разделу:

Основы работы в среде MATLAB

Основы работы в среде MATLAB.. Цель работы.. uuml получить навыки работы с основными элементами интерфейса системы MATLAB..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

МАТЛАБ. СОЗДАНИЕ ГРАФИЧЕСКИХ ПРИЛОЖЕНИЙ.

Графические объекты. Графические приложения содержат меню, кнопки, области ввода текста, переключатели, графики.

Указатель на объект. Элементы, из которых состоят графические приложения, являются объектами. Указатель это переменная, в которой хранится адрес (в памяти компьютера) объекта. Пользователь пользуется указателями, как переменными. То есть для совершения действия над элементом графики, пользователь в соответствующей команде указывает имя переменной, означающей данный элемент графики (указатель на данный графический элемент).

Для получения указателей есть функции: gcf возвращает указатель в графическое окно, gca возвращает указатель на оси координат, gco возвращает указатель на графический объект.

Свойства графических объектов. Для установки свойств объектов есть функция set(указатель_на_объект, ‘изменяемое_свойство’, ‘его_новое_значение’, ‘изменяемое_свойство_2’, ‘его_новое_значение_2’).

Для получения свойств объекта есть функция get(указатель_на_объект, ‘свойство’).

Создание программ с визуальным интерфейсом. В окне Command Window следует набрать guide и тогда откроется окно для создания визуального интерфейса.

В нем можно выбрать как уже существующие (Open Existing GUI) так и создание нового интерфейса. Для этого предлагаются несколько наиболее распространенных типовых заготовок, а также возможность создать вообще сначала весь интерфейс (Blank GUI Default).

Для примера создадим вариант интерфейса. Он предназначен для ввода нескольких исходных величин (аргументов) и вычисления нескольких интересующих пользователя ответов (результатов или, иначе говоря, функций от введенных аргументов). Также предусмотрено построение графика какой-либо функции от какой-либо переменной по усмотрению пользователя, указывающего также минимальное и максимальное значения аргумента и шаг его изменения.

Для редактирования свойств элементов интерфейса, определенный элемент дважды щелкнуть мышкой (левой кнопкой). Откроется редактор свойств (Property Inspector). В нем например имя элемента (под которым он фигурирует в компьютере) называется Tag. Найдя слово Tag в левой колонке, в правой увидим само имя (например text1). Надпись на элементе, которая видна в окне интерфейса, называется String. Найдя в левой колонке слово String, в правой ему соответствует сама надпись (например argument x).

Файл интерфейса имеет расширение.fig.

Подготовка М-файла, соответствующего созданному интерфейсу.

Для того, чтобы интерфейс был связан с выполнением требуемых действий (например, при нажатии на кнопку Calculate происходило бы вычисление функций и вывод их значений в соответствующих окошках) необходимо предварительно описать в М-файле все, что требуется сделать.

М-файл появится на экране после нажатия на соответствующую (четвертую справа) кнопку в ряду кнопок вверху экрана редактора интерфейса. В М-файле, имеющем то же самое название, как и файл интерфейса, уже автоматически сгенерирован текст в соответствии с выбранными пользователем элементами интерфейса. Каждому элементу интерфейса соответствует абзац текста, начинающийся с упоминания названия (Tag) элемента интерфейса.

Поскольку целесообразно начать с описания действий, выполняемых после нажатия на кнопку Calculate, то рассмотрим абзац текста в М-файле, описывающий их. Для этого в файле интерфейса щелкнем кнопку Calculate, открыв Property Inspector, и найдем Tag этой кнопки. Пусть, например, он оказался pushbutton1. Тогда в М-файле найдем абзац, озаглавленный function pushbutton1_Callback(hObject, eventdata, handles)

В этом абзаце (то есть ниже строки его заголовка) укажем что должно произойти после ее нажатия.

Должна быть вызвана функция ввода аргументов, считывающая из соответствующих текстовых окошек исходные аргументы и возвращающая вектор (массив) аргументов. Затем должна быть вызвана функция, решающая задачу вычисления значений-результатов. Она получает вектор значений аргументов и возвращает вектор значений результатов. После этого должна быть вызвана функция для вывода в соответствующие окошки интерфейса значений из вектора результатов.

Команда x=str2double(get(handles.edit1,"String")); означает что в переменную x будет записано число, возвращаемое функцией str2double которая преобразует строку цифр в число. Аргумент этой функции это возвращаемое значение функции get(handles.edit1,"String")); которая обращается к элементу интерфейса handles.edit1 где handles означает обращение к визуальному интерфейсу, edit1 это обозначение конкретного элемента интерфейса.

Команда S=sprintf("%g",f1); означает что в переменную S будет записана строка символов оператором sprintf("%g",f1); который обращается к аргументу f1 и "%g" указывает что аргумент является вещественным числом.

Команда set(handles.edit4,"String",S); означает что в элемент интерфейса edit4 (окошко вывода текста) будет выведена строка символов содержащаяся в переменной S.

Построение графика. Для построения графика предназначена кнопка интерфейса Plot. Логика построения графика такова. Пользователь вводит в окошки ввода значения переменных NumFun (номер функции 1, 2 или 3), NumArg (номер аргумента), MinArg (минимальное значение аргумента, с него начинаются подписи к горизонтальной оси), MaxArg (максимальное значение аргумента, до него идут подписи к горизонтальной оси), StepArg (шаг изменения аргумента). Затем пользователь нажимает кнопку Plot и происходит построение графика в соответствии с введенными данными.

В М-файле опишем соответствующий этой кнопке абзац текста. После нажатия на кнопку вызывается функция VvodArg, считывающая исходные аргументы и возвращающая вектор их значений. Потом вызывается функция PostrGraf. Ей передается вектор аргументов. Она строит график. Для построения графика функция PostrGraf считывает из окошек текстового ввода интерфейса соответствующие переменные. Затем подсчитывает число шагов, вычитая минимальное значение из максимального и деля на величину шага. При этом команда round округляет до целого значения результат деления. NumberSteps=round((MaxArg-MinArg)/StepArg); после этого для каждого элемента массива горизонтальных координат horis точек графика и для каждого элемента массива вертикальных координат vert точек графика определяются значения. Когда все готово, то команда plot строит график и затем на график накладывается координатная сетка.

Вычислить и сохранить результаты. Для того, чтобы вычислить результаты и сразу же сохранить их в файл, предназначена кнопка Calculate & Save.

В соответствующем этой кнопке тексте программы, происходит открытие файла

Uiputfile("Путь к файлу\Имя файла.расширение", "Окно выбора");

Где среди возвращаемых значений p путь, f имя файла. После получения этих возвращаемых значений функции uiputfile, следует объединить эти данные с помощью команды KudaZapisat=strcat(p,f); дальнейшие действия так же, как в ранее рассмотренных упражнениях о работе с файлами.

Построить и сохранить график. Для того, чтобы построить график и сразу же сохранить его, предназначена кнопка Plot & Save. В соответствующем этой кнопке тексте программы сначала происходит построение графика. Можно было бы просто поставить вызов функции, уже описанной выше, которая строит график. Но все же более понятно для изучения, если все переменные вычисляются здесь же. Для контроля строится и сам график.

Затем, когда все переменные, описывающие график, определены, то открываем файл. Функция uiputfile возвращает путь к файлу и имя файла. Затем их объединяем в одну переменную. Записываем в файл количество элементов массивов горизонтальных и вертикальных координат (очевидно они одинакового размера). Затем записываем сами массивы координат точек графика. Потом записываем аргументы, а также номер функции и номер аргумента, для которых построен график. Затем файл закрываем.

Открыть результаты вычислений из файла. Для открытия файла с результатами вычислений предназначена кнопка Open Data. В соответствующем ей месте программы опишем необходимые действия. Функция uigetfile подготавливает данные об открываемом файле для чтения. При этом открывается окно выбора, где определяется имя файла и путь к нему. Эти данные являются возвращаемыми значениями для функции uigetfile. Получив их, объединяем их в одну переменную OtkudaChitat. Затем открываем файл. После открытия файла, считываем интересующие нас данные из файла в переменные с соответствующими названиями. Необходимо теперь вывести значения этих переменных в соответствующие окошки текстового вывода в интерфейсе. Для этого используем функцию VivodRes и ранее не использовавшуюся функцию VivodArgumentovNaEkran, которую необходимо описать выше описания кнопки.

Открыть график и данные из файла. Открытие данных, необходимых для построения графика, из файла осуществляется кнопкой Open Data & Plot. В соответствующем ей тексте программы логика действий примерно такая же как и при открытии результатов вычислений из файла. После получения всех необходимых данных из файла, осуществляется построение графика. Кроме того, выводятся данные об исходных аргументах и, кроме того, о номере функции и номере аргумента, для которых построен график. При желании можно также доработать это упражнение и выполнить подписи к осям графика в соответствии с названиями аргументов и функций.

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Уфимский государственный авиационный технический университет

Кафедра авиационного приборостроения

ИНТЕРФЕЙС СИСТЕМЫ MATLAB

Методические указания

к лабораторной работе по дисциплинам

«Основы автоматического управления»

и «Цифровая обработка сигналов»

Уфа 2006

Составитель: В.И. Петунин

УДК 004.45(07)

ББК 32.973.26-018.2(я7)

Интерфейс системы MATLAB: Методические указания к лабораторной работе по дисциплинам «Основы автоматического управления» и «Цифровая обработка сигналов» / Уфимск. гос. авиац. техн. ун-т; Сост. В.И. Петунин. – Уфа, 2006. – 29 с.

В методических указаниях приведено описание лабораторной работы, во время которой студенты знакомятся с принципами построения и особенностями функционирования системы MatLab. Рассматривается применение этой системы для моделирования линейных и нелинейных динамических систем (пакеты Control System Toolbox и SimuLink) и цифровой обработки сигналов (пакет Signal Processing Toolbox).

Предназначены для студентов, обучающихся по направлению подготовки дипломированных специалистов 200100 «Приборостроение» и по специальности 200103 «Авиационные приборы и измерительно-вычислительные комплексы».

Табл. 0. Ил. 7. Библиогр.: 8 назв.

Рецензенты: д-р техн. наук, проф. Васильев В.И.

канд. техн. наук, доц. Юлдашбаев Ш.А.

©Уфимский государственный

авиационный технический университет, 2006

1. Цель работы 4

2. Теоретическая часть 4

2.1. Введение 4

2.2. Интерфейс MatLab 6

2.3. Исследование линейных стационарных систем (пакет Control System Toolbox) 12

2.4. Моделирование нелинейных систем (пакет SimuLink) 16

2.5. Цифровая обработка сигналов (пакет Signal Processing Toolbox) 21

3. Задание 23

4. Описание лабораторной установки 24

5. Порядок выполнения работы 24

6. Требования к отчету 24

7. Контрольные вопросы 25

Библиографический список 25

Приложение 27

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

ИНТЕРФЕЙС СИСТЕМЫ MatLab

1. Цель работы

Целью данной работы является:

1. изучение назначения, состава и интерфейса системы MatLAB версий 5.Х;

2. ознакомление с демонстрационными примерами системы MatLAB;

3. изучение пакетов Control и SimuLink (моделирования линейных и нелинейных динамических систем);

4. изучение пакета Signal (цифровой обработки сигналов).

2. Теоретическая часть

2.1. Введение

Система MatLAB (сокращение от MATrix LABoratory – МАТричная ЛАБоратория) разработана фирмой The MathWorks, Inc. (США, г. Нейтик, штат Массачусетс) в конце 70-х годов 20 века и является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных . Система использует математический сопроцессор и допускает возможность обращения к программам, написанным на языках FORTRAN, C и C++.

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

Основным объектом системы MatLAB является прямоугольный массив, который допускает комплексные элементы и ввод матриц без явного указания их размеров. Система позволяет решать многие вычислительные задачи за значительно меньшее время, нежели то, которое необходимо для написания соответствующих программ на языках FORTRAN, BASIC и C.

Система MatLAB имеет собственный язык программирования, напоминающий BASIC. Запись программ является традиционной и поэтому привычной для большинства пользователей персональных компьютеров. К тому же система дает возможность редактировать программы при помощи любого привычного для пользователя текстового редактора.

Работа в среде MatLAB может осуществляться в двух режимах:

    В режиме калькулятора, когда вычисления производятся непосредственно после набора очередного оператора или команды MatLAB; при этом значения результатов вычисления могут присваиваться некоторым переменным, либо результаты получаются непосредственно, без присвоения (как в обычных калькуляторах);

    Путем вызова программы, составленной и записанной на диске, на языке MatLAB, которая содержит все необходимые команды, обеспечивающие ввод данных, организацию вычислений и вывод результатов на экран (программный режим).

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

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

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

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