Методические указания. графический приложение программирование matlab. Ввод пользовательской функции

Методические указания. графический приложение программирование matlab. Ввод пользовательской функции

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

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

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

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

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

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

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

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

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

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

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

  • Запуск приложения Simulink. Вызов справки MATLAB.

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

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

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

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

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

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

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

  • Работа с меню. Команды, операции и параметры. Меню системы.

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

  • Подменю File

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

  • Открытие окон для подготовки новых файлов. Загрузка и сохранение файлов. Установка путей доступа файловой системы.

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

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

    Окно настройки элементов интерфейса представлено на рис. 5.16. | Рис. 5.16. Окно настройки элементов интерфейса | Интерфейс MATLAB 6.0 стал настолько удобным и даже изысканным, что мало вероятно, что кому-либо захочется менять его в мере, большей, чем это предусмотрено командами подменю View [Это может потребоваться даже для настройки под особенности операционной системы.

  • Обеспечение печати - команды Print и Print Selection

    В MATLAB для печати используются стандартные средства Windows. Меню File содержит две команды печати. Первая из них - Print - служит для вывода окна печати, показанного на рис. 5.17 применительно к широко распространенному струйному принтеру Epson Stylus COLOR 600.

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

    Меню Edit (рис.5.19) содержит операции и команды редактирования, типичные для большинства приложений Windows: | Undo (Отменить) - отмена результата предшествующей операции; | Redo (Повторить) - отмена действия последней операции Undo;

  • Основы редактирования и отладки m-файлов. Интерфейс редактора/отладчика m-файлов. Цветовые выделения и синтаксический контроль.

    Для подготовки, редактирования и отладки m-файлов служит специальный многооконный редактор. Он выполнен как типичное приложение Windows. Редактор можно вызвать командой edit из командной строки или командой New > M-file из меню File.

  • Понятие о файлах-сценариях и файлах-функциях. Панель инструментов редактора и отладчика.

    Здесь полезно отметить, что m-файлы, создаваемые редактором/отладчиком, делятся на два класса: | файлы-сценарии, не имеющие входных параметров; | файлы-функции, имеющие входные параметры. | Видимый в окне редактора на рис. 5.21 файл является файлом-сценарием, или Script-файлом.

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

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

    Размещено на 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 существует два способа создать графический интерфейс пользователя (Graphical user interface, GUI):

    1. Полуавтоматический способ создание GUI с помощью инструмента GUI Layout Editor (команда guide в консоли Matlab)
    2. "Ручной" программный способ создания GUI (GUI programmatically)
    У каждого способа есть свои недостатки и преимущества. GUI Layout Editor больше подходит для начинающих пользователей, а программное создание GUI - для профессионалов.

    GUI Layout Editor

    В редакторе GUI Layout Editor (команда guide в консоли Matlab) можно вручную создавать все элементы интерфейса: панели, кнопки, чекбоксы и т.д.

    В результате создания интерфейса получим два файла: fig-файл с «фигурой» самого интерфейса и m-файл, который создается самим Matlab и содержит программный код всех элементов интерфейса.

    Главное преимущество guide - легко сделать простой GUI, т.к. весь код для интерфейса генерируется самим Matlab. Для работы программной частью GUI достаточно изучить принцип обмена данными с помощью команд setappdata и getappdata (что является стандартным приемом для обмена данными между различными элементами GUI).

    Но более профессиональный подход – это создавать GUI программно, не пользуясь guide.

    GUI programmatically

    Преимущества програмного создания GUI:
    • Легче управлять кодом GUI (код лучше структурирован, легче создавать новые элементы, удалять старые и т.д.)
    • Нет отдельного fig-файла для интерфейса и отдельного программного m-файла (так как любое обновление fig-файла в guide требует соответствующего обновления m-файла и может привести к нежелательным эффектам).
    Ознакомиться с guide, конечно, нужно на первых порах, чтобы лучше понять GUI в Matlab, но, по-моему, стоит переходить к программному созданию GUI чем быстрее, тем лучше.

    А вот здесь и открывается другая сторона медали. Главная трудность в программном создании GUI в MATLAB то, что нужно вручную указывать расположение всех элементов интерфейса (параметр "Position" с 4-я элементами: x,y координаты + ширина и длина). Это очень неудобно. В guide это проблема решается очень просто - с помощью инструмента Tools->Align Objects .

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

    Итак, одной из важных проблем при программном создании GUI является расположение элементов. Хороший обзор инструментов, которые помогают решить эту проблему есть по ссылке Matlab layout managers . К сожелению, только в комментариях к обзору по ссылке упомянули . Вот об этом тулбоксе и пойдет речь дальше.

    С помощью полностью решается проблема с визуальным оформлением GUI (не зря попал в выборку программы недели на главном портале Matlab Pick of the Week).

    GUI with GUI Layout Toolbox

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

    Общая инструкция по работе с очень простая:

    1. Создаем сетку (uiextras.Grid) (или можно этот шаг пропустить)

    2. На сетку помещаем панели (uiextras.Panel),

    3. На панели помещаем боксы (uiextras.Box)

    4. В боксы помещаем элементы управления: кнопки, оси или еще что-нибудь.

    Теперь о расположении всех элементов интерфейса заботиться .

    Наглядный пример GUI с помощью с моими комментариями можно скачать по ссылке 29 .

    В моем примере обмен данными между функциями и элементами интерфейса происходит с помощью приема, который называется Sharing Variables Between Parent and Nested - переменная, объявленная в главной функции, видима во всех вложенных функциях. Этот прием можно использовать вместо стандартных setappdata и getappdata.

    Вместо заключения

    Раньше я редко доводил программы до GUI и если и делал это, то только с помощью guide. Но с GUI Layout Toolbox эта задача очень сильно упростилась, за это большое спасибо разработчикам этого тулбокса.

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

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

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

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

    ИНТЕРФЕЙС СИСТЕМЫ 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 предназначена для довольно сложных расчетов. Это и определяет круг ее пользователей: инженеры –проектировщики и разработчики новых устройств, студенты и аспиранты, научные работники, физики и математики. Система приспособлена к любой области науки и техники, содержит средства, которые особенно удобны для электро- и радиотехнических расчетов.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows