Upload
vunga
View
310
Download
5
Embed Size (px)
Citation preview
Поволжский Государственный Университет
Телекоммуникаций и Информатики
Факультет ИСТ
Кафедра ИВТ
Конспект лекций
"Система компьютерной математики MATLAB"
Автор-составитель: Акчурин Э.А. д.т.н., профессор Рецензент Тарасов В.Н. д.т.н., профессор
Самара
2012
Факультет информационных систем и технологий
Кафедра «Информатика и вычислительная техника»
Автор - д.т.н., профессор Акчурин Э.А.
Другие материалы по дисциплине Вы найдете на сайте
www.ivt.psati.ru
Оглавление
Оглавление .............................................................................................................. 3 1. Математическое программирование.................................................................. 7
1.1. Литература .................................................................................................... 7 1.2. Обзор ............................................................................................................. 7 1.3. Mathcad.......................................................................................................... 7 1.4. Macsyma ........................................................................................................ 8 1.5. Maple.............................................................................................................. 9 1.6. Mathematica ................................................................................................. 10 1.7. S-PLUS ........................................................................................................ 11 1.8. MATLAB ....................................................................................................... 11 1.9. Scilab............................................................................................................ 13 1.10. Octave ........................................................................................................ 14
2. MATLAB .............................................................................................................. 15 2.1. Состав системы .......................................................................................... 15 2.2. MATLAB продукты ...................................................................................... 15 2.3. Инструментальные наборы Toolboxes ..................................................... 16 2.4. Simulink продукты ....................................................................................... 17 2.5. Множества блоков Blocksets...................................................................... 17 2.6. Модели связи с симуляторами .................................................................. 18 2.7. Свойства системы ...................................................................................... 19
Возможности системы........................................................................................ 19 2.8. Функции MATLAB ........................................................................................ 20
3. Инструментарий рабочего стола ...................................................................... 23 3.1. Начало и завершение сессии .................................................................... 23 3.2. Справка по использованию MATLAB ........................................................ 25
3.2.1. Информационная среда системы MATLAB ...................................... 25 3.2.2. Окна MATLAB ...................................................................................... 26 3.2.3. Profilier (профилировщик) ................................................................... 27 3.2.4. Figure (Графическое окно) .................................................................. 29 3.2.5. Simulink Library Browser ...................................................................... 31 3.2.6. Графический пользовательский интерфейс ..................................... 32
4. Импорт и экспорт данных .................................................................................. 35 5. Математика ........................................................................................................ 37
5.1. Массивы и матрицы ................................................................................... 38 5.1.1. Основная информация ....................................................................... 38 5.1.2. Элементарные матрицы и массивы .................................................. 39 5.1.3. Операции с массивами ....................................................................... 40 5.1.4. Манипуляции с массивами ................................................................. 41 5.1.5. Специализированные матрицы ......................................................... 42
5.2. Линейная алгебра....................................................................................... 42 5.2.1. Матричный анализ .............................................................................. 42 5.2.2. Линейные уравнения .......................................................................... 43 5.2.3. Собственные и особые значения ...................................................... 43 5.2.4. Матричные логарифмы и экспоненты ............................................... 43 5.2.5. Факторизация ...................................................................................... 44
5.3. Элементарная математика ........................................................................ 44 5.3.1. Тригонометрия .................................................................................... 45 5.3.2. Экспоненты (степени, корни, логарифмы) ........................................ 45 5.3.3. Комплексные числа ............................................................................ 46 5.3.4. Округления и остатки .......................................................................... 46 5.3.5. Дискретная математика ...................................................................... 47
5.4. Полиномы ................................................................................................... 47 5.5. Интерполяция и вычислительная геометрия ........................................... 47 5.6. Преобразования систем координат .......................................................... 48 5.7. Нелинейные численные методы ............................................................... 48
5.7.1. Обыкновенные дифуравнения........................................................... 48 5.7.2. Дифуравнения с задержками ............................................................. 49
5.8. Специализированная математика ............................................................ 49 5.9. Разреженные матрицы .............................................................................. 50 5.10. Математические константы ..................................................................... 50
6. Анализ данных ................................................................................................... 52 Определены категории.......................................................................................... 52 7. Программирование и типы данных .................................................................. 53 Определены категории.......................................................................................... 53
7.1. Ключевые слова ......................................................................................... 53 7.2. Типы данных ............................................................................................... 54
Определены категории.......................................................................................... 55 7.2.1. Численные типы .................................................................................. 55 7.2.2. Символы и строки ............................................................................... 57 7.2.3. Структуры ............................................................................................ 59 7.2.4. Массивы ячеек .................................................................................... 60 7.2.5. Дескрипторы функций ........................................................................ 61
7.3. Преобразования типов данных ................................................................. 62 Определены категории.......................................................................................... 63
7.4. Строки ......................................................................................................... 63 Определены категории.......................................................................................... 64
7.5. Побитовые операции ................................................................................. 64 7.6. Логические операции ................................................................................. 65 7.7. Операции сравнения .................................................................................. 66 7.8. Операции установки ................................................................................... 67 7.9. Операции дата-время ................................................................................ 68
7.10. Программирование в MATLAB ................................................................ 69 Определены категории.......................................................................................... 69
7.10.1. Функции и сценарии .......................................................................... 69 7.10.2. Вычисления ....................................................................................... 70
MATLAB – суперкалькулятор............................................................................. 71 7.10.3. Переменные и функции в памяти .................................................... 72 7.10.4. Поток управления ............................................................................. 72 7.10.5. Редактор/Отладчик (Editor/Debugger) ............................................. 74
Пункт Desktop (Рабочий стол) ........................................................................... 83 7.10.6. Программирование MEX .................................................................. 85
8. ООП .................................................................................................................... 86 9. Графика .............................................................................................................. 88
9.1. Функции графики ........................................................................................ 88 9.2. Анатомия графики ...................................................................................... 88
9.2.1. Пункт File (Файл) ................................................................................. 89 9.2.2. Пункт Edit (Правка) .............................................................................. 90 9.2.3. Пункт View (Вид) .................................................................................. 91 9.2.4. Пункт Insert (Вставить) ........................................................................ 92 9.2.5. Пункт Tools (Инструменты) ................................................................ 93 9.2.6. Пункт Desktop (Рабочий стол) ............................................................ 95 9.2.7. Пункт Window (Окно) ........................................................................... 95 9.2.8. Пункт Help (Справка) .......................................................................... 96
9.3. Инструменты рисования ............................................................................ 96 9.3.1. Свойства графических объектов ....................................................... 97 9.3.2. Объект Figure (Графическое окно) .................................................... 98 9.3.3. Объект Axes (Координатные оси) ...................................................... 98 9.3.4. Объект Text (Текст) ............................................................................. 99 9.3.5. Объект LineSeries (Набор линий) .................................................... 100
Спецификаторы цвета ..................................................................................... 100 9.4. Функции рисования высокого уровня ...................................................... 101 9.5. Графика 2D ............................................................................................... 102
9.5.1. Перечень функций ............................................................................ 102 9.5.2. Функция plot (график) ........................................................................ 102 9.5.3. Функция plotyy (график, две оси у) .................................................. 105 9.5.4. Функции, логарифмический масштаб .............................................. 105 9.5.5. Функции bar и barh (столбцовые диаграммы) ................................. 107 9.5.6. Функция hist (гистограмма) ............................................................... 108 9.5.7. Функция stairs (ступеньки) ................................................................ 108 9.5.8. Функция errorbar (с зонами погрешности) ....................................... 109 9.5.9. Функция stem (дискретные отсчеты) ............................................... 110 9.5.10. Функция polar (полярные координаты) .......................................... 111 9.5.11. Функция rose (угловые гистограммы) ............................................ 112
9.5.12. Функция compass (комплексные векторы) .................................... 113 9.5.13. Функция feather (комплексные векторы) ....................................... 114 9.5.14. Функция contour (контур) ................................................................ 115 9.5.15. Функция quiver (поля градиентов) .................................................. 116 9.5.16. Функции закрашивания ................................................................... 117 9.5.17. Функция pie (круговая диаграмма) ................................................. 118
9.6. Графика 3D ............................................................................................... 119 9.6.1. Перечень функций ............................................................................ 119 9.6.2. Функция plot3 (график 3D) ................................................................ 120 9.6.3. Функции mesh (сетка с окраской линий) .......................................... 120 9.6.4. Функции surf (сетка с окраской поверхности) ................................. 121 9.6.5. Функция waterfall (слоеная поверхность) ........................................ 123 9.6.6. Функция pcolor (на плоскости в цветах) .......................................... 124 9.6.7. Функция contour3 (3D контур) ........................................................... 125 9.6.8. Функции fill3, patch (многоугольник) ................................................. 126 9.6.9. Функция pie3 (объемная круговая) .................................................. 127
9.7. Функции трех переменных ....................................................................... 128 9.7.1. Функция slice (сечение поверхности) .............................................. 128 9.7.2. Функция cylinder (цилиндр) ............................................................... 129 9.7.3. Функция sphere (сфера) .................................................................... 130 9.7.4. Функции trimesh, trisurf (треугольные грани) ................................... 131
9.8. Оформление графики, детали ................................................................ 132 9.8.1. Метки осей, заголовок окна, текст ................................................... 132 9.8.2. Легенда .............................................................................................. 132 9.8.3. Маркировка линий равного уровня .................................................. 133 9.8.4. Палитра и шкала цветов .................................................................. 134 9.8.5. Функции shading (окраска поверхностей) ........................................ 135
10. Создание графического ПИ .......................................................................... 137 10.1. Визуальное программирование GUIDE ................................................ 137 10.2. Открытие окна инструмента GUIDE ...................................................... 138
11. Внешние интерфейсы ................................................................................... 150 Это сообщение ..................................................................................................... 150 3.1416 .................................................................................................................... 150 123 ......................................................................................................................... 150 Пример 1. Ввод числа в виде строки ................................................................. 151 25 ........................................................................................................................... 152 100 106 ................................................................................................................ 152
1. Математическое программирование
1.1. Литература
1. Дьяконов В. MATLAB 7.*/R2006/R2007: Самоучитель. – М.: ДМК Пресс, 2008. – 768 с.
2. Hunt. MATLAB R2007 с нуля! - М.: Лучшие книги, 2008, 352 с. 3. Дьяконов В. Simulink 5/6/7: Самоучитель. – М.: ДМК Пресс, 2008. – 784 с.:
1.2. Обзор
При программировании интерес представляет конечный результат, рутинные детали мало значительны. Предметного пользователя интересует не техника программирования, а конечный результат.
Полезен большой набор встроенных математических функций. В обычных языках программирования он ограничен и часто нужные функции надо отдельно программировать.
Желательно автоматизировать формирование таблиц. Это рутинная операция, которая при обычном программировании требует много времени и усилий.
Желательно автоматизировать формирование графиков. Это тоже рутинная операция, которая при обычном программировании требует много времени и усилий.
Для визуализации результата желательны графики в разных форматах (декартовы, полярные, объемные, контурные и др.).
Для визуализации изменяющихся данных в графиках полезна анимация.
Хорошо иметь средства для моделирования процессов.
Подобными свойствами обладают системы компьютерной математики (СКМ):
1.3. Mathcad
Создана в 1980-х годах в университете Стэнфорда (США). Современные версии для ПК готовит фирма MathSoft Application. (теперь PTC). Web страница в Интернете – www.ptc.com.
Это интегрированная среда для выполнения, документирования и обмена результатами технических вычислений Данный продукт позволяет пользователям вводить, редактировать и решать уравнения, визуализировать результаты, документировать их, а также обмениваться результатами анализа, отслеживая при этом их размерность. Mathсad служит средством
вычислений, анализа и написания отчетов для профессионалов во всех областях науки и техники. Продукт прост в использовании и не вызывает проблем при обучении.
Цена лицензии 1435 $, за обновление версии 325 $.
Это универсальный пакет для всех, содержащий наиболее часто используемые математические средства. Ориентирована на пользователей, разрабатывающих прикладные программы для конкретных предметных областей.
MathCAD = Mathematics Computer Assistance Design (Математическое конструирование с помощью компьютеров).
Достоинства:
Математический интерфейс. Программирование на языке математики. Для непрограммиста лучше формулы в привычном математическом начертании.
Есть мощная поддержка двумерной и трехмерной графики.
Возможен импорт графики из других программ.
Большое количество встроенных математических функций (сотни). Практически все основные математические формулы.
Встроенные справочники по предметным областям.
Возможна анимация.
Символьная математика. Основные аналитические преобразования (компьютерная алгебра).
Есть версии, в которых интерфейс на русском языке.
Недостатки:
Это интерпретатор.
Возможности программирования ограничены. Они заложены в технику написания подпрограмм.
Нет встроенной системы имитационного моделирования (как Simulink в MATLAB).
1.4. Macsyma
Macsyma — система компьютерной алгебры, первая версия которой была разработана с 1968 по 1982 год в MIT в лаборатории Project MAC, а впоследствии распространялась на коммерческой основе. Это была первая всеобъемлющая система символьной математики и одна из ранних систем, основанных на знаниях. Многие из идей, появившихся в Macsyma,
впоследствии были заимствованы такими системами как Mathematica, Maple, и другими.
Проект был инициирован в июле 1968 года Карлом Энгельманом (англ. Carl Engelman), Вильямом Мартином (англ. William A. Martin) (интерфейс пользователя, отображение выражений, арифметика полиномов) и Джоэлем Мозесом (англ. Joel Moses) (механизм упрощения выражений, неопределённые интегралы: эвристики/алгоритм Риша)
Macsyma от компании Macsyma, Inc. (http://www.macsyma.com/) — это одна из первых математических программ, оперирующих символьной математикой. Сильные стороны Macsyma — развитой аппарат линейной алгебры и дифференциальных уравнений.
Система ориентирована на прикладные расчеты и не предназначена для теоретических исследований в области математики. В связи с этим в программе отсутствуют или сокращены разделы, связанные с теоретическими методами (теория чисел, теория групп, и др.). Пожалуй, главным преимуществом Macsyma перед другими универсальными математическими пакетами является то, что пользователь может аналитически и численно решать большое количество различных типов уравнений в частных производных.
Macsyma имеет очень удобный интерфейс. Рабочим документом программы является научная тетрадь, в которой содержатся доступные для редактирования поля текста, команд, формул и графиков. Отличительной особенностью пакета является совместимость с текстовым редактором Microsoft Word. Почти все команды Macsyma в библиотечных файлах загружаются автоматически; очень удобно и окно просмотра (браузер) математических функций. Macsyma генерирует коды FORTRANа и C, включая управляющие операторы. Система работает на платформе Intel под управлением OS Windows.
Недостаток - нет встроенной системы имитационного моделирования (как Simulink в MATLAB).
Цена — 500 $.
1.5. Maple
СКМ Maple создана в 80-х годах в университете Waterloo (Канада) сначала для больших компьютеров. Современные версии для ПК готовит фирма Waterloo Maple.
Данный продукт(часто называют системой символьных вычислений или системой компьютерной алгебры. Maple позволяет выполнять как численные,
так и аналитические расчеты с возможностью редактирования текста и формул на рабочем листе. Благодаря представлению формул в полиграфическом формате, великолепной двух- и трехмерной графике и анимации Maple является одновременно и мощным научным графическим редактором. Простой и эффективный язык-интерпретатор, открытая архитектура, возможность преобразования кодов Maple в коды C делает его очень эффективным средством создания новых алгоритмов. Обладающий интуитивно понятным интерфейсом, простыми правилами работы и широким функционалом, этот продукт уже завоевал популярность у российских математиков и инженеров. Цена Maple для ВУЗов — 124 $.
Эта СКМ ориентирована на профессиональных математиков, позволяет выполнять математические расчеты любой сложности. Однако ее основное ядро эффективно могут использовать все.
Достоинства:
Математический интерфейс. Программирование на языке математики. Для непрограммиста лучше формулы в привычном математическом начертании.
Есть мощная поддержка двумерной и трехмерной графики.
Огромное количество встроенных математических функций (2700). Практически все известные математические формулы.
Символьная математика. Основные аналитические преобразования (компьютерная алгебра).
Недостатки:
Это интерпретатор.
Возможности программирования ограничены.
Поддержка в основном символьной математики.
Нет встроенной системы имитационного моделирования (как Simulink в MATLAB).
1.6. Mathematica
СКМ Mathematica - конкурент системы Maple. Их возможности близки друг к другу. Современные версии готовит фирма Wolfram Research Incorporated.Название по фамилии главы фирмы, лондонского вундеркинда – Wolfram.
Система Mathematica — компании Wolfram Research, Inc. имеет чрезвычайно широкий набор средств, переводящих сложные математические алгоритмы в программы. По сути дела, все алгоритмы, содержащиеся в курсе высшей математики технического вуза, заложены в память компьютерной системы
Mathematica. В некоторых странах (например, в США) система высшего образования тесно связана с этим продуктом. Огромное преимущество системы Mathematica состоит в том, что ее операторы и способы записи алгоритмов просты и естественны. Mathematica имеет мощный графический пакет, с помощью которого можно строить графики очень сложных функций одной и двух переменных. Главное преимущество Mathematica, делающее ее бесспорным лидером среди других систем высокого уровня, состоит в том, что эта система получила сегодня очень широкое распространение во всем мире, охватив огромные области применения в научных и инженерных исследованиях, а также в сфере образования.
Цена для ВУЗов— 770 $. Обновление бесплатное.
1.7. S-PLUS
S-PLUS — продукт компании Insightful Corporation (http://www.insightful.com/), ранее известной как подразделение MathSoft, а теперь являющейся одним из мировых лидеров в области статистического анализа данных, визуализации и прогнозирования. S-PLUS представляет собой интерактивную компьютерную среду, обеспечивающую полнофункциональный графический анализ данных и включающую оригинальный объектно-ориентированный язык. Гибкая система S-PLUS может использоваться для исследовательского анализа данных, статистического анализа и математических вычислений, а также для удобного графического представления анализируемых данных. К основным достоинствам S-PLUS относятся непревзойденная функциональность, возможность интерактивного визуального анализа данных, интуитивно понятные интерфейс пользователя и методы подготовки анализируемых данных, простота использования самых современных статистических методов, мощные вычислительные возможности, расширяемый набор статистических методов, гибкий интерфейс пользователя.
Недостаток - нет встроенной системы имитационного моделирования (как Simulink в MATLAB).
Цена — 2865 долл.
1.8. MATLAB
Первая версия СКМ MATLAB создана в конце 1970-х годов в Стэнфордском университете (США) для преподавания теории матриц. Современные версии готовит фирма Math Works (www.mathworks.com).
Среди основных областей применения MATLAB — математические расчеты, разработка алгоритмов, моделирование, анализ данных и визуализация,
научная и инженерная графика, разработка приложений, включая графический интерфейс пользователя.
MATLAB решает множество компьютерных задач — от сбора и анализа данных до разработки готовых приложений. Среда MATLAB соединяет в себе математические вычисления, визуализацию и мощный технический язык. Встроенные универсальные интерфейсы позволяют легко работать с внешними информационными источниками, а также осуществлять интеграцию с процедурами, написанными на языках высокого уровня (C, C++, Java и др.).
Мультиплатформенность MATLAB сделала его одним из самых распространенных продуктов — он фактически стал принятым во всем мире стандартом технических вычислений. MATLAB имеет широкий спектр применений, в том числе цифровую обработку сигналов и изображений, проектирование систем управления, естественные науки, финансы, экономику, приборостроение и т.п.
Цена — 500 $ за ядро, 200 $ за каждый пакет расширения. Полный комплект - 500 + 75*200 = 15500 $.
MATLAB = Matrix Laboratory (Лаборатория Матриц).
Достоинства:
Матричная математика обеспечивает очень высокую скорость математических действий. Примерно в 10 раз выше, чем в СКМ Mathcad.
Язык программирования близок к широко распространенным языкам Делфи и Бейсик.
Есть поддержка двумерной и трехмерной графики.
Большое количество встроенных математических функций. Несколько тысяч для различных предметных областей. Есть возможность создания собственных функций в виде М-файлов.
Есть средства разработки графического пользовательского интерфейса.
Есть встроенная система имитационного моделирования блочно организованных систем Simulink.
Недостатки:
Программирование не на языке математики.
Нет достаточной поддержки работы с радиотехническими компонентами.
СКМ содержит четыре группы компонент:
Продукты MATLAB. Это ядро системы и наборы универсальных функций.
Toolboxes – Инструментальные пакеты для MATLAB (универсальные и специализированные). Каждый набор содержит встроенные функции для определенной предметной области.
Продукты Simulink. Это сама система имитационного моделирования блочно организованных систем Simulink и поддерживающие ее средства.
Blocksets – Наборы блоков для имитационной модели Simulink. Каждый набор содержит блоки для определенной предметной области.
1.9. Scilab
Scilab — пакет прикладных математических программ, предоставляющий мощное открытое окружение для инженерных (технических) и научных расчётов. С 1994 года распространяется вместе с исходным кодом через Интернет. В 2003 году для поддержки Scilab был создан консорциум Scilab Consortium. Сейчас в него входят 25 участников, в том числе Mandriva, INRIA и ENPC (Франция).
Scilab = Science Laboratory (Научная Лаборатория).
Scilab имеет схожий с MATLAB язык программирования. Говорят, что Scilab бесплатный клон MATLAB
В состав пакета входит утилита, позволяющая конвертировать документы MATLAB в Scilab. В состав пакета также входит Scicos (Xcos в последних версиях)— система моделирования блочно организованных систем (аналог Simulink в пакете MATLAB).
Пакет не случайно имеет название, созвучное с MATLAB — одной из наиболее мощных коммерческих СКМ. У обоих приложений немало общего — от интерфейса и принципа взаимодействия с пользователем через командную строку до синтаксиса языка. Таким образом, Scilab можно рассматривать как облегченный вариант MATLAB, который, впрочем, сохраняет основные возможности последнего.
Scilab является типичным командным интерпретатором и структурно состоит из интерпретирующей системы, принимающей команды пользователя и возвращающей результаты, и двух библиотек: собственных функций и дополнительных — на языках С и Fortran.
Хотя Scilab является бесплатным продуктом, его вычислительные возможности, обеспеченные приблизительно 1000 встроенных функций, вполне соответствуют СКМ профессионального уровня. Вряд ли имеет смысл перечислять даже главные из них, поэтому остановимся только на ключевых моментах.
1.10. Octave
Octave — бесплатная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня. Octave представляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки.
Язык Octave оперирует арифметикой вещественных и комплексных скаляров и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на языках C, С++, Фортран и др.).
Недостаток – нет встроенной системы имитационного моделирования (как Simulink в MATLAB).
2. MATLAB
Возможности MATLAB для каждой новой версии существенно изменяются и расширяются. В новых версиях:
Используется свой интерфейс.
Изменяется список и содержание пакетов расширения. Это вызвано разработкой новых функций и усовершенствованием существующих.
Из функционально одинаковых функций разных пакетов сохраняются только наилучшие.
Используются демо-программы, связанные только с новейшими технологиями.
В этой связи пользователь, ознакомившись с литературой по предыдущим версиям, может обнаружить в новой версии некоторые отличия.
2.1. Состав системы
Release Notes Обзор серсии
Installaton Порядок установки
MATLAB Ядро MATLAB Содержат наборы универсальных функций.
MATLAB продукты
Дополнительные средства MATLAB Содержат наборы специальных функций.
Toolboxes Инструментальные пакеты - расширения MATLAB. Содержат наборы функций для предметной области.
Simulink Дополнительные средства Simulink. Содержат наборы универсальных блоков, методов и функций.
Simulink продукты
Simulink – система имитационного моделирования. Содержат дополнительные методы и функции.
Blocksets Наборы компонент Simulink - расширения Simulink. Содержат наборы блоков, методов и функций для предметной области.
Документация
2.2. MATLAB продукты
Embedded MATLAB Подмножество языка MATLAB
MATLAB Compiler Компилятор кода MATLAB в приложение операционной системы. Выходные коды – C, C++, Java, .NET, Microsoft.Excel,
MATLAB Builder EX Расширение компилятора MATLAB для связи с Excel.
MATLAB Builder JA Расширение компилятора MATLAB для связи с Java.
MATLAB Builder NE Расширение компилятора MATLAB для связи с .NET.
MATLAB Distributed Computing Server
Сервер для поддержки параллельных вычислений..
MATLAB Report Generator Генератор отчетов
SimBiology Концептуальный анализ и моделирование.
SystemTest Тестирование.систем.
Spreadsheet Link EX Связь с окружением для работы с ошибками.
2.3. Инструментальные наборы Toolboxes
Aerospace Toolbox Авионика
Bioinformatics Toolbox Биоинформатика
Communications Toolbox Телекоммуникации
Control System Toolbox Системы автоматического управления
Curve Fitting Toolbox Подгонка кривых под данные кривых
Data Acquisition Toolbox Доступ к данным
Database Toolbox Обмен с базами данных
Datafeed Toolbox Доступ к финансовым данным
Econometric Toolbox Экономические и социальные системы
Filter Design Toolbox Проектирование фильтров
Filter Design HDL Coder Расчет фильтров с аппаратными кодами
Financial Toolbox Финансы
Financial Derivatives Toolbox Производные от «Финансы»
Fixed-Income Toolbox Финансы с фиксированным доходом
Fixed-Point Toolbox Фиксированная точка
Fuzzy Logic Toolbox Нечеткая логика
Global Optimization Toolbox Глобальная оптимизация
Image Acquisition Toolbox Доступ к изображениям
Image Processing Toolbox Обработка изображений
Instrument Control Toolbox Управление внешними инструментами
Mapping Toolbox Картография
Model Predictive Control Toolbox. Модели с упреждающим управлением
Model-Based Calibration Toolbox Калибровка, основанная на модели
Neural Networks Toolbox Нейронные сети
OPC Toolbox Серверы данных с OPC
Optimization Toolbox Оптимизация
Parallel Computing Toolbox Параллельные вычисления
Partial Differential Equation Toolbox Уравнения в частных производных
RF Toolbox Радиочастотные методы
Robust Control Toolbox Устойчивые системы управления
Signal Processing Toolbox Обработка сигналов
Statistics Toolbox Статистика
Symbolic Math Toolbox Символьная математика
System Identification Toolbox Создание модели по данным
Vehicle Network Toolbox Автомобили
Wavelet Toolbox Вейвлеты
2.4. Simulink продукты
DO Qualification Kit Шаблоны, тестовые средства.
IEC Certification Kit Инструменты из стандарта IEC 61508 и ISO 26262.
Real-Time Workshop Embedded Coder
Встроенный кодер для мастерской реального времени
Simulink Fixed Point Фиксированная точка в Simulink
Simulink HDL Coder Генератор HDL кода
Simulink PLC Coder Генератор PLC кода
Simulink Report Generator, Генератор отчетов в Simulink
xPC Target Встроенный объект
xPC TargetBox Набор встроенных объектов
2.5. Множества блоков Blocksets
Aerospace Blockset Авионика
Communications Blockset Телекоммуникации
Real-Time Workshop Мастерская реального времени
Real-Time Workshop Embedded Coder
Встроенноый кодер мастерской реального времени
Signal Processing Blockset Обработка сигналов
Gauges Blockset Набор графических блоков для визуализации модели
SimDriveline Сложные модели с визуализацией для Simulink
SimElectronics Электромеханика и электроника
SimEvents События
SimHydraulics Гидравлика
SimMechanics Механика
SimPowerSystems Энергетика
SimRF Радиочастотные компоненты
Simscape Многоцелевые компоненты
Simulink 3D Animation Трехмерная анимация
Simulink Control Design Проектирование систем управления в Simulink
Simulink Design Optimization Оптимизация проекта
Simulink Design Verifier Формальный анализ
Simulink Verification and Validation
Верификация и проверка в Simulink
Stateflow Моделирование систем, управляемых событиями
Video and Image Processing Blockset
Видео и изображения
2.6. Модели связи с симуляторами
EDA Simulator Link with HDL Simulators Связь с аппаратными симуляторами HDL
EDA Simulator Link with Virtual Platforms
Связь с аппаратными виртуальными платформами
EDA Simulator Link with FPGA Development Environment
Связь с аппаратной средой разработки FPGA
Embedded IDE Link
Связь с встроенными ИСР. Доступны:
Altium TASKING
Analog Devices VisualDSP++
Eclipse IDE
Green Hills MULTI
Texas Instruments Code Composer Studio
Target Support Package
Поддержка аппаратных средств. Доступны:
Analog Devices™ Blackfin
Freescale MPC5xx
Infineon C166
Texas Instruments C2000
Texas Instruments C5000
Texas Instruments C6000
2.7. Свойства системы
Система устанавливается пользователем в объеме, зависящем от задач, которые предполагается решать. При установке загружаются:
Компоненты системы. Можно использовать только MATLAB.
Инструментальные пакеты расширения по выбору.
Библиотеки компонент по выбору.
Документация по выбору. В форматах HTML (просмотр браузерами Интернета) или PDF(просмотр с помощью Acrobat Reader).
2.8. Возможности системы
В области вычислений:
матричные и логические операции,
элементарные функции,
полиномиальная арифметика,
специальные функции,
многомерные массивы,
структуры и массивы структур,
строки в формате Unicod (2 байта на символ).
В области численных методов:
поиск корней нелинейных уравнений,
оптимизация функций,
многомерная интерполяция,
решение дифференциальных уравнений,
одномерные и двумерные квадратуры.
В области символьной математики:
символьные преобразования выражений,
решение нелинейных уравнений,
решение дифференциальных уравнений.
В области мультимедиа:
двумерные и трехмерные графики,
графика с множественной подсветкой,
дескрипторная графика,
анимация,
24-битный цвет,
16-битный стереозвук,
создание графического интерфейса GUI,
редактор свойств графических объектов С удобным графическим интерфейсом.
В области программирования:
редактор/отладчик M-файлов, В виде М-файлов (с расширением .m).
создание своих функций,
профилировщик М-файлов, Для оценки времени исполнения фрагментов.
свыше 500 встроенных функций.
применение программ на С и Fortran,
перекодировка MatLab => C++, Для программирования ЦСП.
перекодировка MatLab Р код. Для межплатформенного обмена.
создание HTML файлов,
прямой выход в Интернет, с помощью Интернет-браузеров.
В области моделирования:
Simulink – имитационное моделирование,
Документация:
в формате HTML,
в формате PDF.
2.9. Функции MATLAB
MATLAB содержит десятки тысяч функций. Для их просмотра выполняется команда Help=>Function Browser. В примере в браузере выделен фрагмент ядра.
Определены категории:
Desktop Tools and Development Environment
Инструменты рабочего стола и среды разработки.
Data Import and Export Импорт и экспорт данных.
Mathematics Математические операции и анализ данных.
Data Analysis Анализ данных
Programming and Data Types Программирование и типы данных
Object-Oriented Programming Объектно-ориентированное программирование
Graphics Графика.
3-D Visualization Трехмерная визуализация.
GUI Development Создание графического пользовательского интерфейса.
External Interfaces Внешние интерфейсы.
В браузере функций можно получить справку по любой функции. Для этого функция выделяется и во всплывающем окне отображается ее описание.
3. Инструментарий рабочего стола
Инструментарий можно увидеть в каталоге:
Определены категории:
Startup and Shutdown Старт и завершение
Command Window and History Командное окно и история команд
Help for Using MATLAB Математические операции и анализ данных.
Workspace Рабочее пространство
Managing Filles Файлы управления
Programming Tools Инструменты программирования
System Система
3.1. Начало и завершение сессии
Традиционный интерфейс Windows. Сеанс работы с MATLAB называется - сессия. Сессия начинается работой в окне командного режима.
Возможны файлы:
.m М-файл Функция MATLAB
.mex Script-файл Из других языков
.mat Mat-файл Из Workspace
.txt Фрагмент сессии
Форма представления сессии – текстовый редактор. В его строках могут находиться:
Приглашение для ввода >>.
Вывод результата.
Сообщение об ошибке.
Сессия – текущий документ MATLAB. Для сохранения результатов используются:
Команда Что? Файл?
save сохранить .mat
load загрузить .mat
diary дневник .txt
В MATLAB используются внутренние системные параметры, которые выбираются по умолчанию и удовлетворяют большинство пользователей.
При желании изменить их следует использовать команду меню File=>Preferences. Она выводит диалоговое окно, в котором можно выбрать формат чисел, межстрочного пробела, тип редактора и др.
Структура окна:
Слева панель выбора категории параметров.
Справа панель редактирования параметров для выбранной категории.
В примере показаны возможности установок параметров для командного окна.
3.2. Справка по использованию MATLAB
3.2.1. Информационная среда системы MATLAB
Включает в себя:
Диалог с пользователем через командное окно.
Просмотр рабочей области и путей доступа.
Редактор/отладчик М-файлов.
Работа с файлами.
Экспорт и импорт данных.
Интерактивный доступ к справочной информации.
Динамическое взаимодействие с внешними системами.
3.2.2. Окна MATLAB
№ Окно Назначение
1. MATLAB Главное окно системы. Док, может включать окна 2...7
2. Command Window Командное окно
3. Command History История команд
4. Current Directory Текущий каталог – менеджер файлов
5. Workspace Рабочая область
6. Help Справка
7. Profilier Профилировщик для оптимизации М-файлов
8. M-File Редактор/отладчик М-файла
9. Figure # Графическое окно, # - номер окна от 1
10. Model Окно модели Simulink
11. Simulink Library Browser Браузер библиотек компонент Simulink
12. GUI – Graphic User Interface
Графический пользовательский интерфейс
При старте пользователь видит док - главное окно 1, в котором размещаются до 5 дочерних окон (2...5, 7), число и список которых можно регулировать. Дочерние окна отображаются в панелях дока (их до 4). Если число окон в доке больше 4, то используются вкладки в панелях. Меню и содержание панели инструментов дока совпадает с меню и панелью инструментов окна, выбранного пользователем для работы. Каждое из дочерних окон можно выделить из дока, как автономное, и разместить произвольно. По умолчанию отображаются окна:
Tекущая папка (Current Directory) - слева. Используется для отображения файлов в текущей папке.
Рабочая область (Workspace) – справа сверху. Используется для отображения переменных в рабочей области. Для каждой переменной указываются: Name – имя, Value – значение, Min – минимум, Max –максимум.
История команд (Command History) – справа снизу.
Командное окно (Command Window) – в центре. В этом окне начинается работа в MATLAB. В окне выводится поясняющий текст для пользователя
и символ >> приглашения, за которым пользователь должен писать командную строку, исполняемую после нажатия клавиши Enter.
3.2.3. Profilier (профилировщик)
Используется при профилировании файла. Профилировщик анализирует свойства файла с целью определения путей его улучшения по используемой памяти и быстродействию. При запуске в окне выводится инструкция по работе с профилировщиком.
Help – Справка. Окно справки имеет сложную структуру и поэтому выводится командой Help главного меню MATLAB всегда в автономном окне. Окно справки содержит два поля:
Навигатор слева. Cодержит кнопки для выбора режима навигации (Content - содержание, Search Results – результаты поиска) и поле Search - поиск.
Информация справа.
Editor (Редактор, отладчик М-файла). Используется для создания или редактирования М-файлов. Для вызова окна используется команда меню MATLAB File=>New=>M-file.
3.2.4. Figure (Графическое окно)
В MATLAB графики отображаются в автономных окнах. Для вызова окна используется команда меню MATLAB File=>New=>Figure. Окно содержит:
Панели инструментов.
Объект Axes (Оси) с графиками
Model (Модель Simulink). В MATLAB встроена система имитационного моделирования блочно организованных систем Simulink. Модель создается в
автономном окне, для вызова которого используется команда меню MATLAB File=>New=>Model. Генерируется пустое окно модели.
Модель составляется из заранее запрограммированных блоков путем их переноса из библиотеки в окно модели. Доступ к библиотекам обеспечивается браузером, окно которого вызывается командой Library Browser из меню модели.
3.2.5. Simulink Library Browser
Окно браузера содержит две панели:
В левой находится оглавление библиотек.
В правой - содержимое выбранного раздела.
После заполнения блоками окно модели имеет вид подобный этому:
3.2.6. Графический пользовательский интерфейс
В MATLAB можно создавать графический пользовательский интерфейс (GUI - Graphic User Interface). Для этого предназначен специальный редактор GUIDE, вызываемый командой меню MATLAB File=>New=>GUI. При вызове появляется окно запуска инструмента, в котором на вкладке выбора шаблонов можно из списка выбрать подходящую заготовку.
После выбора проект GUI сохраняется в вида двух файлов:
Графика - имя.fig,
Шаблона кода программы - имя.m.
Код графика автоматически открывается в ИСР GUIDE. В нем имеются график справа и навигатор слева.
В нем GUI конструируется путем переноса компонент из панели навигатора в график. Затем GUI сохраняется, при этом корректируется и файл кода, в который добавляются фрагменты использованных компонент. Пользователь затем заносит а файл кода команды обработки. Затем код отлаживается во встроенном отладчике.
В примере простого GUI можно анализировать вид графика поверхности при использовании разных типов графика и данных.
Функции разбиты на категории:
Editing Files - редактирование файлов.
Debugging Programs - отладка программ.
.MATLAB Program Performance - параметры программ MATLAB.
Source Control - управление исходниками кода.
Publishing - публикация в выбранном формате.
Функции разбиты на категории:
Operating System Interface - интерфейс операционной системы.
MATLAB Version and License= версия и лицензия MATLAB.
4. Импорт и экспорт данных
Функции импорта и экспорта данных можно посмотреть в браузере функций в каталоге Data Import and Export..
Определены категории:
File Opening, Loading, Saving Открытие, загрузка, сохранение файлов
Text Files Текстовые файлы
Spreadsheets Электронные таблицы
Low Level File I/O Ввод/вывод низкоуровневых файлов
Images Изображения
Scientific Data Научные данные
Audio and Video Аудио и видео
XML documents XML документы
Memory Mapping Карты памяти
File Name Construction Конструирование имени файла
File Compression Сжатие файла
Internet File Access Доступ к файлам Интернета
5. Математика
В MATLAB для выполнения операций можно использовать операторы или функции. Для одних операций определены только операторы, для других только функции, для третьих можно использовать и операторы и функции.
Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования. Оно позволяет одновременно использовать элементы операторного и функционального программирования.
Ядро MATLAB включает множество универсальных функций для осуществления математических операций и анализа данных. Функции разбиты по категориям:
Определены категории:
Arrays and Matrices Массивы и матрицы
Linear Algebra Линейная алгебра
Elementary Math Элементарная математика
Polynomials Полиномы
Interpolation and Computational Geometry
Интерполяция и вычислительная геометрия
Cartesian Coordinate System Conversion
Преобразования систем координат
Nonlinear Numerical Methods Нелинейные численные методы
Specialized Math Специальная математика
Sparse Matrices Разреженные матрицы
Math Constants Математические константы
Операции для предметных областей определены в пакетах расширения MATLAB.
В MATLAB определены две группы арифметических операторов. В одной операции выполняется по правилам матричной алгебры, когда результат зависит от порядка следования операндов. В другой из операндов компоненты извлекаются по очереди и осуществляются операции по правилам линейной алгебры. Для этих операций в оператор добавляется символ точка (.) перед символом операции. Операции сложения и вычитания по правилам матричной и линейной алгебры дают одинаковый результат, поэтому для них символ точка не употребляется.
В системе MATLAB определены указанные ниже функции. Функция, примененная к массиву, возвращает значения для каждого элемента массива. Входной массив допускает комплексные значения. Углы в большинстве функций в радианах.
5.1. Массивы и матрицы
Определены категории:
Basic Information Основная информация
Elementary Matrices and Arrays Элементарные матрицы и массивы
Array Operations Операции с массивами
Array Manipulation Манипуляции с массивами
Specialized Matrices Специальные матрицы
5.1.1. Основная информация
Основные функции
Функция Описание
disp(A) Вывод на дисплей массива А без имени.
isempty(A) А пустой? 1, если да.
isequal(A) А = В? 1, если да.
isfloat(A) А – числа с плавающей точкой? 1, если да.
isinteger(A) А – целые числа? 1, если да.
islogical(A) А - логический? 1, если да.
isnumeric(A) А - числа? 1, если да.
isscalar(A) А - скаляр? 1, если да.
issparse(A) А - разреженный массив? 1, если да.
isvector(A) А - вектор? 1, если да.
length(A) Длина А.
size(A) Размер массива (вектор длины каждого измерения).
5.1.2. Элементарные матрицы и массивы
Основные функции
Функция Описание
еуе(n) Единичная матрица размером nxn, состоит из нулей, главная дагональ - единицы. Это для матричного счисления эквивалент 1, умножение на нее матрицу не меняет.
ones(m,n) Матрица размером mxn из единиц.
zeros(m,n) Матрица размером mxn из нулей.
linspace(a,b,n) Массив из n (по умолчанию 100) точек, равномерно распределенных между а и b.
logspace(a.b,n) Массив из n (по умолчанию 50) точек, равноотстоящих в логарифмическом масштабе между 10^а и 10^b.
randn(m,n) Матрица размером mxn со случайными элементами, распределенными по нормальному закону с нулевым математическим ожиданием и среднеквадратическим отклонением, равным 1.
diag(v.k) Матрица с элементами v на k-ой диагонали. Остальные элементы матрицы - нули. Диагональ k:
при k=0 - главная диагональ (из левого верхнего угла матрицы в правый нижний угол),
при k>0 - одна из диагоналей выше главной,
при k<0 - одна из нижних диагоналей.
5.1.3. Операции с массивами
В MATLAB арифметические операторы над двумерными массивами могут выполняться по правилам обычной или матричной алгебры (когда массив интерпретируется, как матрица). Операторы обычной алгебры действия над элементами массива осуществляют поэлементно, а матричной - по особым правилам. В операторах обычной алгебры, которые дают результат, отличающийся от аналогичных операторов матричной алгебры, перед символом операции добавляется символ точка (.).
Оператор Функция Описание
A+ B plus(A,B) Сложение. A, B должны быть одинакового размера. Одно из них может быть скаляром.
+ A uplus(A) Унарный плюс.
A – B minus(A,B) Вычитание. A, B должны быть одинакового размера. B может быть скаляром.
- A uminus(A) Унарный плюс.
A * B mtimes(A,B) Умножение матриц. Для нескалярных A, B число столбцов в А должно быть равно числу строк в В.
A .* B times(A,B) Умножение массивов. Почленное умножение A и B. A, B должны быть одинакового размера. Одно из них может быть скаляром.
A / B mrdivide(A,B) Деление матриц правое. A делится на B.Тот же результат дает A*inv(B).
A ./ B rdivide(A,B) Деление массивов. Почленное деление A на B. A, B должны быть одинакового размера. Одно из них может быть скаляром.
A \ B mldivide(A,B) Деление матриц левое. B делится на A. Тот же результат дает inv(A)*B.
A .\ B ldivide(A,B) Деление массивов левое. Почленное деление B на A. A, B должны быть одинакового размера. Одно из них может быть скаляром
A : H : B A : B
colon(A,H,B) colon(A,B)
Вертикальное двоеточие. Список от A до B с шагом H. Вертикальное двоеточие. Список от A до B с шагом 1 (или -1).
A ^ B mpower(A,B) Возведение матрицы в степень. A возводится в степень B.
A .^ B power(A,B) Возведение массива в степень. Компоненты A возводятся в степень B. A, B должны быть одинакового размера. Одно из них может быть скаляром.
A ‘ ctranspose(A) Транспонирование матрицы. Для комплексных матриц есть преобразование комплексных значений в сопряженные.
A.’ transpose(A) Транспонирование массива. Для комплексных массивов нет преобразования комплексных значений в сопряженные.
5.1.4. Манипуляции с массивами
Основные функции
Функция Описание
cat (dim, А, В)
Объединяет массивы А и В в соответствии с dim:
dim = 1 - горизонтальная конкатенация,
dim = 2 - вертикальная конкатенация,
dim = 3 - многомерный массив размерности 3 и т. д.
fiiplr(A) Зеркально переставляет столбцы матрицы А относительно вертикальной оси.
fiiplud(A) Зеркально переставляет столбцы матрицы А относительно горизонтальной оси.
rot90(A,k) Поворот матрицы А на угол 90*k градусов, где k — целое число.
Множество - первичное понятие математики, не имеющее четкого определения. Под множеством подразумевается совокупность некоторых объектов, например книг в библиотеке, людей в зале или элементов вектора. Ниже приводятся некоторые функции для обработки множеств, представленных векторами. Они широко используются при анализе и обработке данных.
Оператор Функция Описание
unique(A) Уникальные элементы. Множество со значениями А без повторений.
ismember(A,B) Вектор с длиной А, который содержит 1 в позициях элементов А, имеющихся в В.
union(A,B) Объединение. Множество со значениями А и В без повторений.
setdiff(A,B) Вычитание. Множество значений в А, которых нет в В.
intersect(A,B) Пересечение. Множество из общих элементов A, B.
5.1.5. Специализированные матрицы
Основные функции
Функция Описание
hankel Матрица Ханкеля
pascal Матрица Паскаля, значения целочисленные из треугольника Паскаля.
hadamard Матрица Адамара, состоящая из 1 и -1.
magic Магическая матрица - магический квадрат. Содержит элементы от 1 до n2, суммы по всем направлениям одинаковы. Значение n должно быть больше или равно 3.
hilb Матрица Гильберта
5.2. Линейная алгебра
Инструментарий можно увидеть в каталоге:
Определены категории:
Matrix Analysis Матричный анализ
Linear Equation Линейные уравнения
Eigenvalues and Singular Values Собственные и особые значения
Matrix Logarithms and Exponents Матричные логарифмы и экспоненты
Factorization Факторизация
Ниже часто употребляемые функции.
5.2.1. Матричный анализ
Функция Описание
norm(A,p) Нормализация A. Возвращает норму p, которая характеризует значения в матрице:
при p=1 это сумма модулей,
при p=2 (по умолчанию) это Эвклидова норма - квадратный корень из суммы квадратов,
при p=∞ это сумма значений.
normest(S,tol) Возвращает оценку нормы 2 матрицы S с точностью tol.
cond(X) Число обусловленности, основанное на второй норме, то есть отношение самого большого сингулярного числа X к самому малому. Значение cond(X), близкое к 1, указывает на хорошо обусловленную матрицу.
rank(A,tol) Оценка k числа независимых столбцов матрицы A с точностью tol.
det(X) Определитель квадратной матрицы X.
trace(A) След - сумма диагональных элементов A.
5.2.2. Линейные уравнения
Пусть система линейных уравнений представлена в матричной форме: A*X=B, где A – матрица коэффициентов, X – вектор независимых переменных, B _ вектор правой части системы. Тогда для решения системы достаточно выполнить матричную операцию X=B/A (или X=A\B). Определены функции:
Функция Описание
inv(X) Матрица, обратная квадратной матрице X.
pinv(A,tol) В = pinv(A) — возвращает матрицу, псевдо обратную матрице А.
5.2.3. Собственные и особые значения
Функция Описание
eig(A) Вектор собственных значений А.
eigs(A) Несколько векторов собственных значений разреженной А.
svd(X) Сингулярное (необычное) значение X.
svds(X) Несколько сингулярных значений X.
5.2.4. Матричные логарифмы и экспоненты
Функция Описание
expm(X) Матричная экспонента от Х.
llogm(X) Матричный натуральный логарифм от Х.
sqrtm(X) Матричный квадратный корень из Х.
5.2.5. Факторизация
Факторизация матриц – это представление матрицы в виде произведения матриц.
Функция Описание
chol(X) Факторизация Х по методу Холецкого.
lu(X) LU Факторизация Х. Возвращаются две треугольные матрицы (нижняя, верхняя).
qz(X) QZ Факторизация Х.
5.3. Элементарная математика
Функции разбиты по категориям.
Определены категории:
Trigonometric Тригонометрия
Exponential Экспоненты
Complex Линейные уравнения
Rounding and Remainder Округления и остатки
Discrete Math Дискретная математика
Ниже часто употребляемые функции.
5.3.1. Тригонометрия
Функция Описание
sin(X) Синус.
cos (X) Косинус.
tan(X) Тангенс.
cot (X) Котангенс.
sec(X) Секанс.
csc(X) Косеканс
asin(X) asind (X)
Обратный синус. То же самое, но результат в градусах.
acos (X) acosd (X)
Обратный косинус. То же самое, но результат в градусах.
atan(X) atand(X) atan2 (Y, X)
Обратный тангенс. Результат в квадрантах 1 и 4. То же самое, но результат в градусах. 4-ех квадрантный арктангенс. Мнимые части аргументов игнорируются.
acot (X) acotd (X)
Обратный котангенс. То же самое, но результат в градусах.
asec(X) asecd(X)
Обратный секанс. То же самое, но результат в градусах.
acsc(X) acscd(X)
Обратный косеканс. То же самое, но результат в градусах.
sinh(X) Синус гиперболический.
cosh (X) Косинус гиперболический.
tanh(X) Тангенс гиперболический.
coth (X) Котангенс гиперболический.
sech(X) Секанс гиперболический.
csch(X) Косеканс гиперболический.
asinh(X) Обратный синус гиперболический.
acosh (X) Обратный косинус гиперболический.
atanh(X) Обратный тангенс гиперболический.
acoth (X) Обратный котангенс гиперболический.
asech(X) Обратный секанс гиперболический.
acsch(X) Обратный косеканс гиперболический.
5.3.2. Экспоненты (степени, корни, логарифмы)
Функция Описание
pow2(X) 2 в степени Y.
nextpow2(X) Минимальное р, при котором 2 в степени р больше модуля А.
realpow(X,Y) X в степени Y.
sqrt(X) Квадратный корень из Х..
realsqrt(X) Квадратный корень из неотрицательного вещественного Х..
nthroot (X) Вещественный n-ый корень из Х.
exp(X) Экспонента от Х.
expm1(X) Экспонента от Х минус 1.
log(X) Натуральный логарифм от Х.
reallog(X) Натуральный логарифм от неотрицательного вещественного Х.
log1p(X) Натуральный логарифм от (1+Х).
log2(X) Логарифм от Х по основанию 2.
log10(X) Логарифм от Х по основанию 10.
5.3.3. Комплексные числа
Функция Описание
abs(X) Абсолютное значение Х.
angle(Z) Угол Z в радианах.
complex(a,b) Возвращает комплексное число (a - вещественная часть, b – мнимая часть).
conj(X) Сопряженное комплексное число.
cplxpair(X) Сортирует комплексные числа, группируя сопряженные пары.
i или j Мнимая единица.
imag(X) Мнимая часть комплексного числа.
real(X) Вещественная часть комплексного числа.
isreal(X) Х - вещественный? Возвращает 1, если X вещественный, и 0, если хотя бы один компонент имеет мнимую часть.
sign(X) Знак Х. Возвращается: 1 при Х>0, 0 при Х=0, -1 при Х<0.
5.3.4. Округления и остатки
Функция Описание
fix(X) Целая часть Х.
floor(X) Ближайшее к Х целое в сторону минус бесконечность.
ceil(X) Ближайшее к Х целое в сторону плюс бесконечность.
round(X) Округление Х до ближайшего целого.
mod(X,Y) Целочисленное деление X на Y.
rem(X,Y) Остаток от целочисленного деления X на Y.
5.3.5. Дискретная математика
Функция Описание
factor(X) Простые сомножители (имеют сомножителями 1 и самого себя) для Х.
factorial(X) Факториал Х.
gcd(X,Y) Наибольший общий делитель для X,Y.
isprime(X) Х – простой множитель? Возвращает 1, если да.
lcm(X,Y) Наименьший общий множитель (число, на которое X и Y делятся без остатка).
nchoosek(n,k) Число комбинаций из n элементов по k для неотрицательных целых аргументов.
perms(X,) Перестановки компонент вектора X.
primes(n) Список простых сомножителей, не превышающих n.
rat(X,tool) Представляет X как отношение целых чисел.
5.4. Полиномы
Ниже часто употребляемые функции.
Функция Описание
poly(X) Коэффициенты характеристического полинома (собственные значения) квадратной матрицы Х по убывающим степеням.
polyder(a,b) Коэффициенты характеристического полинома (собственные значения) от произведения полиномов a,b по убывающим степеням.
roots(р) Корни уравнения по полиному р с коэффициентами по убывающим степеням.
polyfit(X,Y,n) Коэффициенты полинома от Х порядка n для подгонки Y(X).
polyval(p,X) Вычисляет полином p для вектора Х.
polyvalm(p,X) Вычисляет полином p для матрицы Х.
residue(b,a) residue(r,p,k)
Преобразует отношение полиномов b/a в простые дроби с коэффициентами r/p и остатком k. Обратное преобразование.
5.5. Интерполяция и вычислительная геометрия
Определены категории:
Interpolation Интерполяция
Delaunay Triangalation and Tesselation Разбиения Делоне и мозаики
Convex Hull Выпуклое множество
Voronoi Diagrams Диаграммы Вороного
Domain Generation Генерация домена
5.6. Преобразования систем координат
Часто употребляемые функции.
Функция Описание
cart2sph(X,Y,Z) Декартовы (прямоугольные) в сферические.
sph2cart (X,Y,Z) Сферические в декартовы (прямоугольные).
cart2pol(X,Y,Z) Декартовы (прямоугольные) в циллиндрические.
pol2cart(X,Y,Z) Циллиндрические в декартовы (прямоугольные).
5.7. Нелинейные численные методы
Определены категории:
Ordinary Differential Equations
Обыкновенные дифференциальные уравнения
Delay Differential Equations Дифференциальные уравнения с задержками
Boundary Value Problems Проблемы граничного значения
Partial Differential Equations Дифференциальные уравнения с частными производными
Optimization Оптимизация
Numerical Integration (Quadrature)
Численное интегрирование (квадратурное)
5.7.1. Обыкновенные дифуравнения
Во всех методах для решения используется численный метод с выбираемыми опциями, задаются интервал интегрирования, шаг и начальное состояние. Для всех методов повышение точности сопровождается снижением скорости.
Функция Описание
ode45 Одношаговые методы Рунге-Кутта 4 и 5 порядка. Точность средняя. Классический метод, рекомендуется для начальной пробы.
ode23 Одношаговые явные методы Рунге-Кутта 2 и 4 порядка. Точность низкая.
ode23s Одношаговый метод Розенброка 2 порядка. Точность низкая, скорость повышенная.
ode23t Метод трапеций с интерполяцией. Точность низкая.
ode23tb Неявный метод Рунге-Кутта в начале решения и метод,
использующий формулы обратного дифференцирования 2-го порядка в последующем. Точность низкая.
ode113 Многошаговый метод Адамса-Башворта-Мултона переменного порядка. Точность зависит от задачи.
ode15s Многошаговый метод переменного порядка (1...5, по умолчанию 5). Точность ниже средней. рекомендуется использовать если ode45 слишком медленный.
5.7.2. Дифуравнения с задержками
Во всех методах для решения используется численный метод с выбираемыми опциями, задаются интервал интегрирования, шаг и начальное состояние. Для всех методов повышение точности сопровождается снижением скорости.
Функция Описание
dde23 Одношаговые методы Рунге-Кутта 4 и 5 порядка. Точность средняя. Классический метод, рекомендуется для начальной пробы.
5.8. Специализированная математика
Ниже часто употребляемые функции.
Функции Описание
airy(Z) Эйри. Возвращает пару линейно независимых решений линейного дифференциального уравнения вида
besselj(nu.Z) – 1 рода besseli(nu.Z) – 1 рода, модиф. bessely(nu.Z) – 2 рода besselk(nu.Z) – 2 рода, модиф. besselh(nu,Z) – 3 рода
Бесселя. Это решения линейного дифференциального уравнения вида
Каждое решение описыватся своей функцией Бесселя, которые характеризуется родом и порядком (nu).
beta(Z,W) Бета-функция
betainc(X,Z,W) Неполная бета-функция. В ней верхний предел
интеграла равен X.
betaln(Z,W) Натуральный логарифм от бета-функции.
ellipj(U,M)
Возвращает функции Якоби от эллиптического интеграла
sn(u)=sin(φ),
cn(u)=cos(φ),
dn(u) = (1-sin2(φ)1/2,
ellipke(M,tool) Возвращает полный эллиптический интеграл 1 и 2 рода.
erf(X) Функция ошибки
expint(X) Интегральная показательная функция
gamma (А) gamma iпс(X,А)
Гамма-функция Неполная гамма-функция
legendre(n.X) Функция Лежандра степени n и порядков m = 0,1..... n.
5.9. Разреженные матрицы
Матрицы без нулевых значений называются полными, а с нулевыми значениями – разреженными. Для разреженных матриц можно использовать специальные функции, упрощающие арифметические операции (например, умножать на 0 не нужно). Разреженная матрица хранится в виде массивов, содержащих только ненулевые элементы с их индексами в полной матрице. Все встроенные в MATLAB арифметические, логические и индексные операции могут быть применены и к разреженным, и к полным матрицам. Применять разреженных матрицы целесообразно, когда разреженность значительна.
Определены категории
Elementary Sparse Matrix Элементарные разреженные матрицы
Full to Sparse Conversion Преобразование полной матрицы в разреженную матрицу
Sparse Matrix Manipulation Манипуляции с разреженными матрицами
Reordering Algorithms Алгоритмы переупорядочения
Linear Algebra Линейная алгебра
Linear Equations (Iterative Methods)
Линейные уравнения (итеративные методы)
Tree Operations Операции с деревьями
5.10. Математические константы
Это широко используемые на практике значения, которые можно использовать в М-файлах. Для их получения используются функции:
Функция Описание
ans Возвращает последнее значение внутренней переменной ans.
eps Возвращает точность операций с плавающей точкой.
intmax Возвращает максимальное значение целого числа.
intmin Возвращает минимальное значение целого числа.
realmax Возвращает максимальное значение модуля вещественного числа.
realmin Возвращает минимальное значение модуля вещественного числа.
pi Константа pi.
i, j Мнимая единица.
inf Бесконечность.
NaN Не число.
computer Тип компьютера.
version Строка с версией MATLAB.
6. Анализ данных
Инструментарий можно увидеть в каталоге:
Определены категории
Basic Operations Основные операции
Descriptive Statistics Дескрипторная статистика
Filtering and Convolution Фильтрация и свертка
Interpolation and Regression Интерполяция и регрессия
Fourier Transformations) Преобразования Фурье
Derivatives and Integrals Производные и интегралы
Time Series Objects Объекты временных последовательностей
Time Series Collections Коллекции временных последовательностей
7. Программирование и типы данных
Инструментарий можно увидеть в каталоге:
Определены категории
Data Types Типы данных
Data Type Conversion Преобразование типов данных
Operators and Special Symbols Операторы и специальные символы
Strings Строки
Bit-Wise Operations Бит-ориентированные операции
Logical Operations Логические операции
Relational Operations Операции сравнения
Set Operations Установочные операции
Date and Time Operations Операции с датой и временем
Programming in MATLAB Программирование в MATLAB
7.1. Ключевые слова
Ключевые слова MATLAB резервирует для внутренних задач. Их нельзя использовать в качестве имен переменных. Их список можно получить функцией iskeyword (это ключевые слова). Она возвращает список ключевых слов:
ans = 'break' 'case'
'catch' 'continue' 'else' 'elseif' 'end' 'for' 'function' 'global' 'if' 'otherwise' 'persistent' 'return' 'switch' 'try' 'while'
7.2. Типы данных
В MATLAB можно использовать разные типы данных (целые и вещественные числа, символы и строки, логические значения и др.). Вы можете разработать даже свои типы, используя классы MATLAB.
Иерархия типов данных в MATLAB:
Array. Массив (полный или разреженный)
logical. Логический тип со значениями true (истина) = 1, false (ложь) = 0.
char. Символ.
numeric. Численный тип.
double. Тип с двойной точностью с плавающей точкой, максимальная точность.
single. Тип с одинарной точностью с плавающей точкой, имеет меньшую точность, но и меньшую память.
nt8, int16, int32, int64. Целые числа со знаком с размерностями 8, 16, 32, 64 бита.
uint8, uint16, uint32, uint64. Положительные целые числа с размерностями 8, 16, 32, 64 бита.
cell. Ячейка, может содержать любые данные, в том числе массивы.
structure. Структура – массив структур в стиле языка программирования С.
user classes. Классы пользователя.
Java. Объекты, сконструированные из классов языка программирования Java.
function handle. Дескриптор функции. Вы можете передавать его в другие функции.
Определены категории
NumericTypes Численные типы
Characters and Strings Символы и строки
Structures Структуры
Cell Arrays Массивы ячеек
Map Container Objects Объекты с контейнерами карт
Function Handles Дескрипторы функций
Java Classes and Objects Классы и объекты Java
Data Type Identification Идентификация типов данных
7.2.1. Численные типы
MATLAB имеет типы для представления вещественных (с дробной частью) и целых чисел.
Для представления вещественных чисел MATLAB использует форматы с плавающей точкой. В них число представляется в виде <Знак><Мантисса>*<2 в степени порядок>.
Поле, отведенное под число, разделено на три подполя.
Знак числа (один бит) Мантисса Порядок
MATLAB имеет 2 типа чисел с плавающей точкой с размерностями 32 и 64 бита. Они отличаются диапазоном чисел и точностью. Определены:
Тип Бит знака
Биты мантиссы
Биты порядка
Модуль минимума
Модуль максимума
single 31 30...23 22...0 1.18E-038 3.4E+038
double 63 62...52 51...0 2.22E-308 1.8E+308
Модуль минимума определяет точность представимых чисел. Числа, модуль которых меньше модуля минимума, интерпретируются, как машинный 0.
Модуль максимума определяет диапазон представимых чисел Числа, модуль которых больше модуля максимума, интерпретируются, как Inf (Infinity –бесконечность).
По умолчанию MATLAB использует тип double, как имеющий максимальные точность и диапазон.
Для работы с целыми числами MATLAB имеет 8 типов (4 знаковых и 4 беззнаковых) с размерностями 8, 16, 32, 64 бита. Они отличаются диапазоном доступных чисел.
Определены знаковые типы:
Тип Минимум Максимум
nt8 -(2 в степени 7) = -128 (2 в степени 7) - 1 = 127
int16 -(2 в степени 15) = -32768 (2 в степени 15) - 1 = 32767
int32 -(2 в степени 31) (2 в степени 31) - 1
int64 -(2 в степени 63) (2 в степени 63) - 1
Определены беззнаковые типы:
Тип Минимум Максимум
uint8 0 (2 в степени 8) -1 = 255
uint16 0 (2 в степени 16) - 1 = 65535
uint32 0 (2 в степени 32) - 1 =
uint64 0 (2 в степени 64) - 1 =
В MATLAB все числа комплексные, они состоят из вещественной части Real и мнимой части Imag, которая снабжается символом мнимой единицы (квадратный корень из -1). Для обозначения мнимой единицы используются символы (i) или (j).
Для создания комплексных чисел можно использовать:
Оператор ввода Z = <Real> + <Imag>j. Символ мнимой единицы вводится после значения мнимой части без знаков операции.
Функцию complex.
Для значений, которые не являются числами, в MATLAB используется специальное значение NaN (Not a Number), что означает <не число>. Примеры использования NaN: в операциях 0/0 и Inf/Inf есть нераскрытая неопределенность, численного ответа указать нельзя.
При выводе численных данных используются форматы, удобные пользователю:
Формат Результат Пример
short 5 значащих цифр с фиксированной точкой (по умолчанию).
1.5708
short e 5 значащих цифр с плавающей точкой. 1.5708e+00
long 15 значащих цифр с фиксированной точкой для double. 8 значащих цифр с фиксированной точкой для singe.
3.14159265358979 3.1415926
long e 15 значащих цифр с фиксированной точкой для double. 8 значащих цифр с фиксированной точкой для singe.
3.14159265358979e+00 3.1415926e+00
rat Отношение малых целых чисел. 115/245
hex 16-ричное число 154ac8f
bank Банковское преставление. Рубли и копейки с разделителем.
5.48
7.2.2. Символы и строки
В MATLAB тип char – символ Unicod, значением которого является номер символа в таблице кодировки. На экране он отображается, как символ.
Строка (string) – одномерный массив символов. Фактически строка – это вектор с номерами кодов символов. Какие символы будут отображаться на экране, зависит от используемого шрифта.
Если Вы используете двумерный массив символов (содержит набор строк), то строки должны быть одинаковой длины. Причина – двумерный массив должен быть прямоугольным.
При работе со строками разной длины нужно использовать массив ячеек. В этом случае каждая строка помещается в свою ячейку массива. Вы можете массив строковых ячеек преобразовать в массив строк, используя функцию cellstr. Она анализирует строки в ячейках, определяет максимальную длину и добавляет пробелы в короткие строки, чтобы получить строки одинаковой длины.
Для создания массивов символов применяются:
Для одной строки ввод значений символов в апострофах.
Для нескольких строк функция char. Она при строковых аргументах разной длины автоматически удлиняет короткие строки до максимальной длины пробелами.
Для сравнения строк предназначены функции:
Функция Описание
strcomp Возвращает true, если строки идентичны, false в противном случае.
strcompi То же самое, но в строках игнорируются пробелы.
strncomp Возвращает true, если первые n символов строк идентичны, false в противном случае.
strncompi То же самое, но в строках игнорируются пробелы.
Для анализа символов в строке предназначены функции:
Функция Описание
isletter Это буквы? Возвращает строку той же длины, в которой размещены 1 в позициях букв алфавита и 0 в остальных. Цифры – это не буквы.
isspase Это пробелы? Возвращает строку той же длины, в которой размещены 1 в позициях пробелов и 0 в остальных. К пробелам относятся все небуквенные символы.
Для преобразования численных значений в строки предназначены функции:
Функция Описание Пример
char Преобразует положительные числа в символы.
[72 105] => ‘Hi’
dec2hex Преобразует положительные числа в 16-ричные символы.
[72 10] => ’48 A’
dec2bin Преобразует положительные числа в двоичные символы.
[72 105] => ‘1001000 1101001‘
Для преобразования строк в численные значения в предназначены функции:
Функция Описание Пример
uintN N=8, 16, 32 или 64. Преобразует символы в числа.
‘Hi’ => [72 105]
hex2dec Преобразует 16-ричные символы в числа. ’48 A’ =>[72 10]
bin2dec Преобразует положительные числа в двоичные символы.
‘1001000 1101001‘ => [72 105]
7.2.3. Структуры
Наиболее важная структура MATLAB – маcсив, в котором могут размещаться числа, символы, логические величины, другие структуры. Для представления одиночных чисел используется массив 1х1, векторов длиной N – массив 1хN.
Массивы с размерностью более 2 называются многомерными. Они имеют более двух индексов. Трехмерный массив можно представить как набор страниц, каждая из которых содержит матрицу.
Доступ к элементам многомерного массива осуществляется по номерам индексов:
A(строка, ряд, размерность 3, размерность 4, ...)
В MATLAB структура – это контейнер данных, содержащий поля, в которые можно поместить любые данные. Если в поле структуры помещается другая структура, то получаются ветвящиеся структуры.
Поле структуры идентифицируется, как <Имя структуры>.<Имя поля уровня 1>. <Имя поля уровня 2>.
Структура может быть массивом. Например:
Persons. Массив персон. person1. Персона 1. name. Имя. family. фамилия. country. Гражданство. person2. name. family. country.
Для создания структур можно использовать операторы и функции.
Пример 1. Использование операторов.
Пример 2. Использованием функции struct.
person1.name = 'Иван'; person1.family = 'Петров'; person1.country = 'Россия' person2.name = 'John'; person2.family = 'Smith'; person2.country = 'USA' Результат в командном окне: person1 = name: 'Иван' family: 'Петров' country: 'Россия' person2 = name: 'John' family: 'Smith' country: 'USA'
person1 = struct('name','Иван',... 'family','Петров',... 'country','Россия') person2 = struct('name','John',... 'family','Smith',... 'country','USA') Результат в командном окне: person1 = name: 'Иван' family: 'Петров' country: 'Россия' person2 = name: 'John' family: 'Smith' country: 'USA'
Для работы со структурами предназначены функции:
Функция Описание
fieldnames Возвращает имена полей структуры.
isfield(X) Это поле? Возвращает 1 для поля в массиве структур.
isstructure(X) Это структура? Возвращает 1 для структуры.
rmfield Перемещает поле структуры.
struct(X,F) Создает или преобразует массив структур. X - имя поля, Y – значение поля
7.2.4. Массивы ячеек
Массив ячеек — наиболее сложный тип данных в системе MATLAB. Это массив, элементами которого являются ячейки, содержащие любые типы массивов, включая массивы ячеек. Отличительным атрибутом массивов ячеек является задание содержимого последних в фигурных скобках {}. Создавать массивы ячеек можно с помощью оператора присваивания.
Существуют два способа присваивания данных отдельным ячейкам:
индексацией ячеек;
индексацией содержимого.
Рассмотрим первый способ.
Пример 1. Массив 2х2 ячеек X(1,1)={'Курить вредно!'}; % Cтрока символов X(1,2)={[1 2;3 4]}; % Матрица 2х2 чисел X(2,1)={2+3i}; % Комплексное число X(2,2)={0:0.1:1} % Вектор из 11 чисел Результат в командном окне: X = 'Курить вредно!' [2x2 double] [2.0000+ 3.0000i] [1x11 double]
Пример 2. Массив 2х2 ячеек и функция cell X=cell(2) % Массив 2х2 пустых ячеек X(1,1)={'Курить вредно!'}; % Cтрока символов X(1,2)={[1 2;3 4]}; % Матрица 2х2 чисел X(2,1)={2+3i}; % Комплексное число X(2,2)={0:0.1:1} % Вектор из 11 чисел Результат в командном окне: X = [] [] [] [] X = 'Курить вредно!' [2x2 double] [2.0000+ 3.0000i] [1x11 double]
7.2.5. Дескрипторы функций
Это средство для прямого вызова функции из другой функции. Вы можете передать дескрипторы функций в другую функцию (она часто называется функция функций).
Для создания дескриптора fhandle одной функции с именем FunctionNname используется операция fhandle = @FunctionNname. Дескрипторы функций целесообразно создавать для нескольких функций, это упрощает дальнейшее программирование.
В примере функция plot рисует график функции 2, выбираемой из трех функций (sin, cos, tan). Сначала создается дескриптор функций, представляющий собой вектор из дескрипторов нужных функций. Затем этот дескриптор передается в функцию рисования.
trigFun = {@sin, @cos, @tan}; % Создать дескриптор функций plot ( trigFun{2} (-pi:0.01:pi) ) % Рисовать, используя функцию 2
В программах для ссылок используются специальные символы:
Символ Назначение
* Звездочка Групповой символ, замещает один или несколько символов.
? Знак вопроса Символ замещения одного символа.
@ Собака Конструктор дескриптора функций. Папка, которая поддерживает классы MATLAB.
: Вертикальное двоеточие
Оператор создания последовательности чисел.
, Запятая Разделитель элементов вектора.
{} Фигурные скобки Включают массив ячеек.
. Одна точка Разделитель имени структуры и поля. Разделитель имени класса и метода.
.. Две точки Указатель родительского или текущего каталога.
. .. Три точки Признак продолжения оператора в другой строке.
.() Точка и круглые скобки
Для выделения имен полей динамической структуры.
! Восклицательный знак
Ставится перед командами операционной системы.
() Круглые скобки Включает аргументы для функций..
% Проценты Признак комментария.
; Точка с запятой Разделяет компоненты в массиве. Блокирует выод результата в командное окно. Разделение команд в одной строке.
‘ ‘ Одиночные кавычки В них размещается строка.
Пробел Разделяет элементы вектора.
/ \ Прямой и обратный слеш
Разделение элементов в пути к файлу.
{ } Квадратные скобки Внутри них массив.
7.3. Преобразования типов данных
Инструментарий можно увидеть в каталоге:
Определены категории
Numeric Числа
String to Numeric Cтроки в числа
Numeric to Strings Числа в строки
Other Conversions Другие преобразования
Тип logical (логический) применяется в условных операторах и для логической индексации массивов. Он имеет два состояния true (истина) и false (ложь), которые используют числа 1 и 0, соответственно. Для создания массивов логического типа применяются:
Значения true и false в операторе ввода.
Функции true и false.
Для логической индексации массивов предназначены функции:
Функция Описание
whos (x) Кто это? Возвращает значение и тип для х.
islogical (x) Это логический? Возвращает true, если да, false в противном случае.
isa (x, ‘logical’) х - логический? Возвращает true, если да, false в противном случае.
class (x) Возвращает строку с именем типа данных.
cellfun (x, ‘logical’)
Проверяет каждую ячейку массива на логический тип..
7.4. Строки
Строковые функции можно посмотреть в браузере функций в каталоге Strings.
Определены категории
Descriptions of Strings in MATLAB Описания строк в MATLAB
String Creation Создание строк
String Identification Идентификация строк
String Manipulation Манипуляции со строками
String Parsing Синтаксис строк
String Evaluation Вычисления со строками
String Comparison Сравнение строк
7.5. Побитовые операции
Инструментарий можно увидеть в каталоге:
Побитовые операторы для неотрицательных целых числам дают доступ к битам двоичного представления чисел.
Оператор Функция Описание
bitand(A,B) Побитовая операция «И», логическое умножение.
bitor(A,B) Побитовая операция «ИЛИ», логическое сложение.
bitcmp(A,N) Побитовая операция «НЕ» для A, инверсия. N – длина ответа.
bitxor(A,B) Побитовая операция «Исключающее ИЛИ», или сложение по модулю 2.
7.6. Логические операции
Инструментарий можно увидеть в каталоге:
Логические операторы бывают поэлементными и побитовыми.
Поэлементные операторы работают с массивами логического типа.
Оператор Функция Описание
A & B and(A,B) Операция «И», логическое умножение.
A | B or(A,B) Операция «ИЛИ», логическое сложение.
~ A not(A,B) Операция «НЕ», инверсия.
A xor B xor(A,B) Операция «Исключающее ИЛИ», или сложение по модулю 2.
any (A) True, если все элементы А равны 0.
all (A) True, если все элементы А не равны 0.
7.7. Операции сравнения
Инструментарий можно увидеть в каталоге:
Оператор Функция Описание
A < B lt(A,B) A меньше, чем B.
A <= B le(A,B) A меньше или равно B.
A > B gt(A,B) A больше, чем B.
A .>= B ge(A,B) A больше или равно B.
A == B eq(A,B) A равно B.
A ~= B ne(A,B) A не равно B.
7.8. Операции установки
Инструментарий можно увидеть в каталоге:
В программах для завершения работы и возврата в точку вызова используется оператор return.
7.9. Операции дата-время
Инструментарий можно увидеть в каталоге:
MATLAB представляет информацию о датах и времени в трех форматах:
Формат Описание
Data Strings Строки дат. Вы можете выбрать один из множества стилей представления даты. Например: 31-Oct-2004 15:45:17. День-месяц-год Часы:Минуты:Секунды. 10/31/03. День/Месяц/Год.
Serial Data Numbers
Последовательные числа для даты и времени. Это время, прошедшее со стартовой даты (в MATLAB это 1 января 0000 года). В нем дата – это целая часть (число суток), время – дробная часть (от суток).
Data Vector Внутреннее представление даты. Это вектор, содержащий год, месяц, день, часы, минуты, секунды.
Для преобразования форматов дат предназначены функции:
Функция Описание
datenum Возвращает последовательные числа для даты и времени.
datestr Возвращает строки для дат. Есть возможность выбора одного из 19 стилей отображения даты.
datevec Возвращает вектор даты.
Для получения текущих значений даты и времени предназначены функции:
Функция Описание
date Возвращает строку с текущей датой.
now Возвращает последовательное число для текущей даты и времени.
7.10. Программирование в MATLAB
Функции программирования можно посмотреть в браузере функций в каталоге Programming in MATLAB.
Определены категории
Functions and Scripts Функции и сценарии
Evaluation Вычисления
Timer Таймер
Variables and Functions in Memory Переменные и функции в памяти
Control Flow Поток управления
Error Handling Отслеживание ошибки
MEX Programming Программирование MEX
7.10.1. Функции и сценарии
В MATLAB определены два типа М-файлов:
Сценарии. Содержат набор команд. Не требуют входных аргументов, не возвращают результатов. Сохраняют переменные в рабочей области.
Функции. Используются для создания своих собственных функций. Могут получать входные аргументы, возвращают результаты. Сохраняют переменные в рабочей области, выделенной под функцию, из внешнего мира они не доступны.
М-файл функции должен иметь особую внутреннюю структуру:
Первая строка – определение функции
function [Вектор возвращаемых значений] = ИмяФункции(аргументы)
Строки кода функции
Подфункции, если есть Описываются аналогично основной функции. В коде основной функции подфункции могут употребляться.
7.10.2. Вычисления
Выражения в MATLAB задают правила нахождения значения, которое присваивается переменной. Оператор присвоения в MATLAB имеет формат: <Имя переменной> = <Выражение>.
Выражение – это правило вычисления значения, записанное на языке программирования. В состав выражения могут входить имена переменных, операторы и функции.
При работе в командной строке имя переменной может пропускаться. Тогда значение выражения присваивается служебной переменной с именем ans (ответ).
В MATLAB определены типы выражений:
На языке MATLAB.
Строковые.
С использованием функций на языках С и Фортран.
Строковые выражения позволяют задать выражение в виде строки, которая за кулисами преобразуется в выражение и исполняется. Для этого используется функция eval(‘строка с выражением’). Например, eval('t = clock') содержит строку с оператором присвоения переменной t значения текущего времени, возвращаемое функцией clock.
Приоритеты. При использовании в выражениях операторы выполняются с установленным приоритетом. Операции одинакового уровня исполняются в порядке слева направо. Старшинство операций определяется уровнями:
1. Круглые скобки ( ). 2. Транспонирование массива (.'), возведение массива в степень (.^),
транспонирование ('), возведение матрицы в степень(^). 3. Унарный плюс (+), унарный минус (-), логическое «НЕ» (~).
4. Умножение массивов (.*), правое деление массивов (./), левое деление массивов (.\), умножение матриц (*), правое деление матриц (/), левое деление матриц (\).
5. Сложение (+), sвычитание (-). 6. Вертикальное двоеточие (:). 7. Меньше чем (<), меньше чем или равно (<=), большечем (>), больше чем
или равно (>=), равно (==), не равно (~=). 8. Поэлементное «И» (&). 9. поэлементное «ИЛИ» (|).
7.10.3. MATLAB – суперкалькулятор
В командном окне можно производить вычисления, как на калькуляторе. Порядок действий:
После символа приглашения >> ввести выражение.
При необходимости запрета вывода результата ввести знак – точка с запятой (;). Это целесообразно при выполнении многих вычислений подряд, когда промежуточные значения не требуются.
Завершить ввод клавишей <Enter>.
MATLAB выведет результат с именем по умолчанию ans.
В MATLAB для выполнения операций можно использовать операторы или функции. Для одних операций определены только операторы, для других только функции, для третьих можно использовать и операторы и функции.
В MATLAB предусмотрены три категории операторов:
Арифметические. Используются с численными данными.
Условные. Используются для сравнения.
Логические. Осуществляют операции над данными логического типа.
Множество - первичное понятие математики, не имеющее четкого определения. Под множеством подразумевается совокупность некоторых объектов, например книг в библиотеке, людей в зале или элементов вектора. Ниже приводятся некоторые функции для обработки множеств, представленных векторами. Они широко используются при анализе и обработке данных.
Оператор Функция Описание
unique(A) Уникальные элементы. Множество со значениями А без повторений.
ismember(A,B) Вектор с длиной А, который содержит 1 в позициях элементов А, имеющихся в В.
union(A,B) Объединение. Множество со значениямиА и В без повторений.
setdiff(A,B) Вычитание. Множество значений в А, которых нет в В.
intersect(A,B) Пересечение. Множество из общих элементов A, B.
7.10.4. Переменные и функции в памяти
Переменная имеет имя, связанное с данными в памяти. Требования к имени:
Длина произвольная, но значимы первые N символов (по умолчанию 64).
Символы – буквы латиницы, арабские цифры, символ подчеркивания.
Начало – буква.
Высота букв имеет значение.
Имя должно быть уникальным.
Переменные могут быть трех типов:
Local (локальные). Каждая функция MATLAB может иметь свои внутренние переменные. Они не сохраняются в рабочей области после завершения функции.
Global (глобальные). Это переменные, используемые разными функциями. Их значения сохраняются в рабочей области.
Persistent (сохраняемые). Это переменные, предназначенные для обмена между функциями. Их можно использовать только в М-файлах функций. Их значения сохраняются в рабочей области, но прямо не доступны. Чтобы сделать переменную этого типа нужно использовать операцию persistent <имя функции>.
7.10.5. Поток управления
Для управления программой предусмотрены операторы. Они записываются строками, признаком конца оператора является слово end. Есть 4 категории операторов:
Условные.
Цикла.
Управления ошибками.
Завершение программы.
Оператор Формат
ifor (Для) for index =
В цикле от начального значения переменной index до конечного с заданным шагом выполняются операторы цикла. Это цикл с заданным числом повторений.
<Начало>:<Шаг>:<Конец> <Операторы> end
while (Пока) Пока условие выполняется операторы цикла отрабатываются.. Это цикл с неизвестным числом повторений. Чтобы цикл завершился, операторы должны приводит к нарушению условия.
while <условие> <Операторы> end
continue Применяется в операторах циклах для досрочного завершения итерации цикла (когда продолжение не дает ничего полезного) и перехода к началу цикла.
break Применяется в операторах циклах для досрочного завершения wbrkf цикла (когда продолжение не дает ничего полезного).
Оператор Формат
try (Попробуем) catch (Схватить) Между try и catch размещаются последовательно исполняемые операторы. Если происходит ошибка, то управление передается фразе catch. Если ошибок не было, то фраза catch пропускается.
try <Оператор> ....... <Оператор> catch <Оператор> ....... <Оператор> end
if (Если) При выполнении условия группа операторов исполняется, в противном случае она пропускается.
if <условие> <Операторы> end
if с фразой else (Иначе) При выполнении условия исполняется группа операторов 1. В противном случае исполняется группа операторов 2, входящая во фразу else.
if < условие > <Операторы 1> else <Операторы 2> end
if с фразой elseif (Иначе если) При выполнении условия 1 исполняется группа операторов 1. В противном случае при выполнении условия 2 исполняется группа операторов 2, входящая во фразу elseif.
if < условие 1> <Операторы 1> elseif < условие 2> <Операторы 2> end
switch (Переключить) с фразами case (Селектор), их число не ограничено, otherwise (Иначе) По выражению вычисляется значение селектора для выбора исполняемых операторов. Каждому значению селектора соответствует своя группа операторов. Если вычисленному селектору нет группы операторов, то исполняются операторы фразы otherwise. Оператор применяется для множественного ветвления.
switch <выражение> case <значение 1> <Операторы 1> case <значение 2> <Операторы 2> ......................... case <значение N> <Операторы N> otherwise <Операторы> end
7.10.6. Редактор/Отладчик (Editor/Debugger)
Программирование М-файлов.Для создания М-файла нужно его запрограммировать. Это можно сделать двумя способами:
В любом текстовом редакторе.
Во встроенном редакторе MATLAB. Рекомендуется использовать этот способ, так как этот редактор обеспечивает визуальную поддержку программирования, а также совмещен с отладчиком.
При исполнении М-файла интерпретатор MATLAB сначала преобразует его в промежуточный псевдокод, вызывая функцию pcode, которая создает файл с тем же именем, но с расширением (.p). Если этот файл сохранить, то при запуске М-файла будет исполняться он. Для скрытия содержимого М-файла можно после сохранения файла псевдокода М-файл удалить.
В М-файл можно добавить справку в виде строк комментария.
Это инструмент для создания, редактирования и отладки M-файлов на языке MATLAB. Вызов редактора:
edit в командной строке,
File => New => script из меню.
File => New => function из меню.
Команда File => New => script приводит к появлению окна редактора. Новый файл имеет по умолчанию имя: Untitled - Безымянный.
Команда File => New => function из меню вызывает редактор в режиме создания функции. В редактор заносится шаблон кода функции.
Новый файл имеет по умолчанию имя: Untitled - Безымянный. Рекомендуются семантические имена.
Для работы с ним файл надо сохранить под уникальным именем. Для сохраненного файла доступна команда исполнения run. После сохранения файла в заголовке появится путь к нему.
В окне редактора находятся:
Стандартная строка заголовка.
Меню. Справа в строке меню находятся кнопки включения или выключения докирования, а также кнопка закрытия M-файла. Редактор может работать одновременно с несколькими М-файлами.
Панель инструментов. По умолчанию выводится основная панель. Если режим работы редактора изменен, то добавляются нужные панели.
Рабочее поле. В нем имеются две колонки – первая с номерами строк кода, вторая для размещения меток точек останова. В рабочем поле вводятся коды команд. Редактор обеспечивает цветовое выделение фрагментов кода (комментарий, строки и др.).Полоска документов (в нижней части окна). В ней кнопки быстрого выбора нужного файла..
Статусная строка. В ней отображаются тип М-файла (script – сценарий или имя функции), позиция курсора (Ln – номер строки, Col – номер столбца).
Пункт File (Файл).
New Новый
Open... Открыть...
Open as text Открыть как текст
Open Selection Открыть выделенное
Close Editor Закрыть редактор
Close Закрыть файл
Save Сохранить...
Save As... Сохранить как...
Save All Сохранить все
Save Backup... Сохранить предыдущие версии...
Save File and Publish Сохранить файл и публикацию
Publish Configuration Публикация в HTML...
Source Control Управление другим кодом
Import Data... Импорт данных
Save Workspace As,,, Сохранить рабочую область
Set Path Установить путь
Preferances Предпочтения
Page Setup Установка страницы
Print Печать
Print Selection Печать выделенного
Ссылки на М-файлы
Exit MATLAB Выход из MATLAB
Редактор использует много параметров по умолчанию. Их можно изменить командой «Предпочтения», которая выводит окно параметров с выделением параметров для редактора/отладчика. В окне можно выбрать:
Редактор, по умолчанию встроенный редактор MATLAB.
Длину списка последних файлов, по умолчанию 4.
Флаги правил открытия файлов.
Флаги правил автоматического изменения файлов.
Изменять эти параметры нецелесообразно.
Пункт Edit (Правка)
Редактор по мере ввода текста программы осуществляет синтаксический контроль. Результаты контроля отображаются цветовыми выделениями. Цвета можно изменить на любые. По умолчанию приняты цвета:
Синтаксис Цвет
Ключевые слова языка Синий
Операторы, константы, переменные Черный
Открытая строка Фиолетовый
Закрытая строка Пурпурный
Системные команды Коричневый
Комментарий после знака % Зеленый
Ошибки Красный
Для цветового выделения фрагмента внутри пары скобок применяется команда Balance Delimeters (Баланс ограничителей). Если курсор установлен в любом месте внутри пары скобок (круглых, квадратных или фигурных), то эта команда приводит к цветовому выделению инверсным цветом содержимого скобок.
Undo Отменить
Redo Повторить
Cut Вырезать
Copy Копировать в буфер
Paste Вставить из буфера
Paste to Workspace Поместить в рабочую область
Select All Выделить все
Find and Replace Найти и заменить
Find Next Найти дальше
Find Previous Найти раньше
Find Selection Найти выделенное
Find Files Поиск файлов
Clear Command Window Очистить командное окнр
Clear Command History Очистить окно истории команд
Clear Workspace Очистить рабочую область
Пункт Text (Текст)
Evaluate Selection Вычислить выделенное
Wrap Comments Сделать ккомментарием
Comment Создать комментарий
Uncomment Отменить комментарий
Decrease Indent Уменьшить отступ
Increase Indent Увеличить отступ
Smart Indent Гибкий отступ
Для ввода текстовых пояснений применяются комментарии, которые интерпретатор игнорирует. Комментарий начинается со знака ( % ). Комментарий выделяется цветом (зеленый). Допустимы комментарии в конце строки. Строки текста можно превращать в комментарий и обратно с помощью команд:
Comment Сделать комментарием. В начало строки добавляется символ %.
Uncomment Отменить комментарий. В начале строки удаляется символ %.
Для иерархического позиционирования операторов, таких как циклы, вложенные операторы и др. применяются отступы. Для работы с ними предусмотрены команды:
Команда Действие
Decrease indent Уменьшить отступ, удаляется символ табуляции.
Increase indent Увеличить отступ, добавляется символ табуляции.
Smart indent Отступ автоматический по контексту.
Пункт Go (Перейти)
Back Назад
Forward Вперед
Set/Clear Backmark Установить/Удалить закладку
Next Backmark Следующая точка закладку
Previous Backmark Предыдущая закладка
Go To Отменить комментарий
Пункт Cell (Ячейка)
Пункт содержит команды работы с массивами ячеек. Перед их использованием нужно исполнить первую команду пункта – включение режима редактирования ячеек.
Disables Cell Mode Переключить режим массива ячеек
Evaluate Current Cell Вычислить текущую ячейку
Evaluate Current Cell and Advance Вычислить текущую ячейку полно
Evaluate Entre File Вычислить весь файл
Insert Cell Brake Ввести разделитель ячеек
Insert Cell Brake Around Selection Ввести разделитель ячеек для выделения
Insert Text Markup Ввести разметку текста
Next Cell Следующая ячейка
Previous Cell Предыдущая ячейка
Пункт Tools (Инструменты)
Code Analysis Анализатор кода
Show Dependency Report Показать отчет о зависимостях
Open Profilier Открыть профилировщик
Compare Against Version on Disk Сравнить с версией на диске
Save and Compare Against Сравнить с версией по выбору
Compare Against Version on Disk Ввести разделитель ячеек для выделения
Fixed-Point Toolbox Функция из Fixed-Point Toolbox
Пункт Debug (Отладка)
Перед отладкой файл нужно сохранить, чтобы зафиксировать сделанные в нем изменения. Точки останова можно вводить после сохранения файла. Перечень доступных команд зависит от режима работы редактора.
Open File when Debugging Открыть файл для отладки
Step Шаг вперед
Step In Шаг с заходом в подпрограмму
Step Out Подпрограмма за 1 шаг
Save File and Run Сохранить файл и запуск
Run Configuration Запуск под конфигурацией
Set/Clear Breakpoint Установить/Удалить точку останова
Set/Modify Conditional Breakpoint... Установить/Изменить точки останова с условиями...
Enable/Disable Breakpoint Разрешить/Запретить точки останова
Clear Breakpoints in All Files Удалить точки останова во всех файлах
Stop if Error/Warning Стор при ошибке или предупреждении
Exit Debug Mode Закрыть режим отладки
Команды трассировки доступны только при наличии точек останова.
Команда Stop if Error/Warning выводит диалоговое окно с 4 вкладками для задания правил реагирования на:
Errors – ошибки.
Try/Catch – ошибки в операторе пробы.
Warnings - предупреждения.
Nah or Inf – нечисло или бесконечность.
Пункт Desktop (Рабочий стол)
Dock Editor Докировать окно редактора в рабочий стол MATLAB
Undock Отменить докирование
More Увеличить докированное окно
Reduce Уменьшить докированное окно
Editor Toolbar Флаг установки панели инструментов
Editor Cell Mode Toolbar Флаг установки панели инструментов режима ячеек
Document Bar Полоска документов
Пункт Window (Окно)
Содержит команды изменения окна редактора.
Tile Выбрать размещение окон, закрашивая области в решетке
Left/Right Split Размещение слева/справа
Top/Bottom Split Размещение сверху/снизу
Float Каскадное размещение
Minimize Максимизация, один документ в окне
Cascade Editor Documents Каскадные документы
Minimize Editor Documents Минимизация документов, не отображать ни одного
Close All Documents Закрыть все документы
Next Tool Следующий инструмент
Previous Tool Предыдущий инструмент
Next Tab Следующая таблица
Previous Tab Предыдущая таблица
Список окон
Пункт Help (Справка)
Содержит команды доступа к справке по редактору MATLAB.
7.10.7. Программирование MEX
Для создания автономных файлов приложений и динамически связываемых библиотек, которые могут использоваться без установленной системы MATLAB, предназначен компилятор. Для использования компилятора убедитесь в правильности установки пути к динамическим библиотекам. Для операционной системы Windows правильный путь:
<matlabroot>\bin\win32. <matlabroot> - корневая папка MATLAB.
Компилятор преобразует файлы, созданные в MATLAB, в нужный продукт с тем же именем следующими командами:
Что получаем Как Комментарий
Автономное приложение .exe
mcc –m myfile.m –m задает создание из myfile.m файла приложения myfile.exe.
Разделяемая библиотека .dll
mcc –l myfile.m
Библиотека подключается потребителями, когда нужна. –l задает создание из myfile.m файла DLL myfile.dll.
Драйвер библиотеки .lib (Windows) .so
mbuild myfile.c myfile.lib mbuild myfile.c
Библиотека подключается драйвером и доступна всегда. создать из myfile.c файл myfile.lib. создать из myfile.c файл myfile.so.
(Linux) myfile.lib
MATLAB имеет язык программирования высокого уровня, который включает структуры данных, основанные на матрицах, собственные внутренние типы данных, множество функций и среду окружения для разработки собственных функций.
Это интерпретатор, выполняет команды построчно.
Поддерживаются импорт и экспорт многих типов данных, объектно-ориентированное программирование, интерфейс с внешними технологиями (COM, Java, C, Fortran), работа с устройствами последовательного порта ввода/вывода.
Возможны два способа программирования:
Работа в режиме суперкалькулятора в командном окне.
Создание M-файла с последующим исполнением.
Любая операция в MATLAB завершается занесением результата в рабочую область и его выводом в командное окно. Вывод в командное окно можно заблокировать, разместив после операции знак точка с запятой ( ; ).
В строке можно указать несколько операций, разделяя их знаками запятых ( , ). Если строка очень длинная, ее можно разместить в нескольких строках, завершая каждую знаком продолжения из трех или более точек (...).
7.11. ООП
Функции работы с объектами можно посмотреть в браузере функций в каталоге Object-Oriented Programming.
Определены категории:
Classes and Objects Классы и объекты
Handle Classes Классы дескрипторов
Events and Listeners События и слушатели
Meta-classes Мета классы
Enumerations Перечисления
8. Графика
8.1. Функции графики
Их можно посмотреть в браузере функций в каталоге Graphics
Определены категории:
Basic Plots and Graphs Основные рисунки и графики
Plotting Tools Инструменты рисования
Annotating Plotting Оформление рисунка
Specialized Plotting Специальное рисование
Bit-Mapped Images Точечная графика
8.2. Анатомия графики
В MATLAB используется объектно-ориентированное программирование, при котором все объекты графики образуют иерархическую структуру. Объекты потомки наследуют свойства и методы у объектов предков. Для рядового пользователя знать детали этого не надо. Большинство команд графики высокого уровня MATLAB выбирают свойства и методы автоматически. Пользователь может воспользоваться и командами низкоуровневой (дескрипторной) графики, которые дают прямой доступ к данным объекта.
В MATLAB функции и инструментальные средства графики отображают свои результаты в автономном окне, которое именуется объектом Figure. MATLAB использует стили линий и цвета, чтобы различить наборы данных, отображаемые на графике.
Доступ ко всем командам и инструментальным средствам можно получить, используя меню объекта Figure. Для быстрого выбора наиболее часто используемых команд имеются также панели инструментов и интерактивные средства редактирования.
Окно объекта Figure имеет стандартный формат Windows и содержит:
Заголовок с именем окна.
Меню.
Инструментальные панели с кнопками быстрого доступа к часто исполняемым командам.
Рабочее поле, в котором располагаются используемые объекты. Например, на рисунке показан встроенный объект Axes (Оси), в котором рисуются графики функций.
Пользователь может вводить в объект дополнительные компоненты.
8.2.1. Пункт File (Файл)
Содержит команды работы с файлами применительно к графике. Многие команды подобны стандартным командам работы с файлами операционной системы Windows.
8.2.2. Пункт Edit (Правка)
Содержит команды редактирования применительно к графике. Подобны стандартным командам редактирования Windows.
8.2.3. Пункт View (Вид)
Содержит команды видимости применительно к графике.
8.2.4. Пункт Insert (Вставить)
Содержит команды вставки объектов графики.
8.2.5. Пункт Tools (Инструменты)
Содержит команды работы с объектами графики.
8.2.6. Пункт Desktop (Рабочий стол)
Добавляет команду докирования объекта Figure на рабочий стол MATLAB в панель инструментов.
Практически не применяется, так как на рабочем столе места мало.
8.2.7. Пункт Window (Окно)
Содержит перечень используемых окон. Обычно это:
командное окно, куда выводятся сообщения о возможных ошибках,
объект Figure,
редактор М-файла, если он используется.
8.2.8. Пункт Help (Справка)
Содержит команды доступа к справке по графике в MATLAB.
8.3. Инструменты рисования
В MATLAB для создания графики используются: Интерактивное редактирование с помощью встроенных инструментов. Программирование в М-файлах, содержащих графические команды. Программирование в командном окне.
В MATLAB графики отображаются в автономных окнах, которые называются Figure. Количество одновременно используемых графических окон не ограничено.
MATLAB имеет графику разного уровня:
Графика низкого уровня работает напрямую с объектами дескрипторной графики (например, линиями).
Графика высокого уровня осуществляет дополнительные сервисные действия, улучшающие визуализацию и упрощающие работу (например, автоматический выбор цвета и стиля). Она обращается к операциям графики низкого уровня за кулисами. Обычно используется графика высокого уровня.
Графическое окно в MATLAB имеет два назначения:
Рисование графиков данных. Организация пользовательского интерфейса.
Окно строится из объектов, которые образуют иерархическую структуру:
Root - Корень дерева объектов графики (экран компьютера).
Figure Графическое окно.
Uipanel Панель пользовательского интерфейса. Uimenu Меню пользователя. Uicontextmenu Контекстное меню пользователя. Uicontrol Управление интерфейсом пользователя.
Axes Оси (X,Y или X,Y,Z). В объекте Figure их может быть несколько, как подокна. Text Текст. Line Линия. Rectangle Прямоугольник. Patch Закраска. Surface Поверхность. Light Подсветка. Невидимый объект, видны только его
действия. Image Картинка.
Внимание! Имена объектов в документации MATLAB начинают с заглавной буквы. Функции же всегда пишутся строчными буквами. Например:
Figure – имя объекта,
figure – имя функции, создающей объект Figure.
8.3.1. Свойства графических объектов
Для создания графического окна используется функция figure(N), N – номер окна, нумерация с 1. Функции рисования высокого уровня создают Figure с очередным номером автоматически.
Объект Figure включает в себя объекты, свойства которых можно изменять программно в М-файле или интерактивно с использованием встроенного редактора свойств.
Свойства любого графического объекта можно задавать:
В функциях графики (основные) с помощью спецификатора, который представляет собой строку символов, каждый из которых имеет уникальный смысл.
Любые с помощью функции set.
Любые интерактивным редактированием в редакторе свойств.
8.3.2. Объект Figure (Графическое окно)
Основные свойства:
Name (Имя). По умолчанию это Figure <номер окна>.
Color. Цвет фона рабочего поля. По молчанию серый.
NextPlot. Следующий график. Возможные значения:
New (новый). Новый график создается в новом окне.
Add (добавить). Новый график рисуется в том же окне с сохранением предыдущих. Команды рисования высокого уровня при этом каждый новый график отображают цветом из списка в 6 цветов.
Replace (заменить). Новый график рисуется в том же окне с заменой имеющихся.
8.3.3. Объект Axes (Координатные оси)
Основные свойства перечислены в таблице. Свойства и функции, индивидуальные для осей X, Y и Z, в имени имеют префикс оси (в таблице показаны свойства для оси X).
Группа Свойство Назначение
Оси Title Заголовок. Это текст, располагающийся над объектом Axes. Он может содержать и результаты вычислений. Формируется функцией title. Используемый по умолчанию шрифт Helvetica не поддерживает кириллицу, подходит шрифт AG_Helvetica.
Box Коробка. Обрамляющий параллелепипед для 3D объекта.
Colors Цвет фона.
Color Цвет текста.
Линии LineStyleOrder Порядок чередования стилей.
LineWidth Толщина.
Шрифт Аналогично объекту Text.
Сетка XGrid Крупная масштабная сетка, включена/выключена.
XMinorGrid Мелкая масштабная сетка, включена/выключена.
XAxisLocation Положение оси, свои варианты для разных осей.
XLabel Заголовок оси. Это текст, располагающийся вдоль оси. Он может содержать и результаты вычислений. Формируется функцией xlabel. Не все шрифты допускают кириллицу и вертикально размещение. Используемый по умолчанию шрифт Helvetica не поддерживает кириллицу, подходит шрифт AG_Helvetica.
GridLineStyle Стиль линий координатной сетки.
XLim Пределы изменения, вектор со значениями минимума и максимума.
XScale Масштаб: linear (линейный), log (логарифмический по основанию 10).
XTick Масштабные метки. Вектор меток, отображаемых вдоль оси.
XColor Цвет.
8.3.4. Объект Text (Текст)
Текстовые области используются как: Заголовки объектов Axes. Названия осей в объекте Axes. Пояснения на графиках.
Основные свойства:
Группа Свойство Назначение
Текст String Строка текста. Формируется программно, может включать результаты вычислений. Формируется разными функциями в зависимости от места расположения текста.
BackgroundColor Цвет фона.
Color Цвет текста
Линии LineStyle Стиль линии.
LineWidth Толщина.
Шрифт FontName Имя.
FontSize Размер.
FontAngle Наклон: normal (нормальный), italic (курсив),
oblique (облегающий).
FontWeigt Толщина: тонкий (light), normal (нормальный), demi (утолщенный), bold (жирный).
FontUnits Единица измерения: inches (дюймы), centim (сантиметры), normalized points (нормализованные точки), pixels (пиксели).
Rotation Поворот в градусах.
8.3.5. Объект LineSeries (Набор линий)
В объекте Axes могут быть несколько графиков. Для каждого определены основные свойства:
Группа Свойство Значение
Линия LineStyle Стиль
LineStyleOrder Чередование цветов, определяет цвета для последовательно рисуемых линий
LineWidth Толщина
Цвет Color. Цвет
ColorOrder Чередование цветов, определяет цвета для последовательно рисуемых линий
Маркер Marker Знак
MarkerSize Размер
MarkerEdgeColor Цвет контура маркера
MarkerFaceColor Цвет заливки маркера
Данные XDataSource Источник данных для X
YDataSource Источник данных для Y
ZDataSource Источник данных для Z
Свойства линий передаются в функции рисования с помощью LineSpec (спецификатор линий). LineSpec – это строка символов, каждый из которых однозначно определяет свойство. Символы вводятся в строку в любом порядке без пробелов или с ними, высота букв значения не имеет.
Спецификаторы цвета
R G B Кратко Полно Цвет
[1 1 0] y yellow желтый
[1 0 1] m magenta фиолетовый
[0 1 1] c cyan голубой
[1 0 0] r red красный
[0 1 0] g green зеленый
[0 0 1] b blue синий
[1 1 1] w white белый
[0 0 0] k black черный
[z z z] Для произвольного цвета z = 0…1.
Спецификаторы стиля линии
Символы Стиль линии
- Тире (по умолчанию)
Сплошная
: Вертикальное двоеточие
Двойной пунктир
-. Тире + точка Штрих-пунктир
-- Тире + Тире Штриховая
Спецификаторы знака маркера
Коротко Полно Название Коротко Полно Название
+ плюс ^ треугольник вверх
o окружность v треугольник вниз
* звездочка > треугольник вправо
. точка < треугольник влево
x крест p pentagram пятиугольник
s square квадрат h hexagram шестиугольник
d diamond ромб none нет (по умолчанию)
8.4. Функции рисования высокого уровня
Эти функции осуществляют:
Создание объекта Figure с очередным номером (если его нет).
Создание объектов Axes в объекте Figure.
Масштабирование данных по осям.
Рисование графиков в объекте Axes.
Функции при исполнении вызывают графические функции низкого уровня.
Созданный рисунок затем может интерактивно редактироваться встроенным редактором.
Функция subplot применяется для создания в объекте Figure подокон. Вывод графиков в подокнах применяется для одновременного наблюдения связанных графиков без наложения друг на друга.
Действия функции зависят от способа записи. Варианты синтаксиса:
subplot(m,n,p). Создает в текущем объекте figure объект axes в панели c номером p из матрицы из m строк и n столбцов. Дальнейшие действия касаются этого объекта axes. Если p – вектор, то он задает номера создаваемых в объекте figure объектов axes
subplot(m,n,p,’replace’). Если в объекте figure указываемые объекты axes существует, то они заменяются на новые.
h=subplot(...). Возвращает дескриптор нового объекта axes. На него затем можно ссылаться.
8.5. Графика 2D
8.5.1. Перечень функций
Функция Тип графика
plot Линейный масштаб.
plotyy Две функции с разными масштабами. Оси y слева и справа.
loglog Логарифмические масштабы по осям х и у.
semilogx Логарифмический масштаб по оси х.
semilogy Логарифмический масштаб по оси y.
bar Столбцовая диаграмма вертикальная.
barh Столбцовая диаграмма горизонтальная.
hist Гистограмма.
stairs Ступеньки.
errorbar С зонами погрешностей.
stem Дискретные отсчеты.
polar В полярной системе координат.
rose Угловые гистограммы.
compass Векторы.
feather Векторы комплексных чисел.
contour Контурные.
quiver Поля градиентов.
fill Закрашенный многоугольник для 2D объектов.
patch Закрашенный многоугольник для 2D и 3D объектов.
pie Круговая диаграмма.
8.5.2. Функция plot (график)
Функция plot используется с разными аргументами.
plot(Y). Аргумент – матрица Y, которая должна быть определена до построения графика. Рисует одну линию для каждого столбца матрицы Y. Ось
х помечается индексным вектором 1:m, где m – число строк в Y. Если Y – вектор, то линия одна. В примере для формирования матрицы используется стандартная функция peaks, которая генерирует матрицу для поверхности со сложным рельефом. Индекс нумеруется от 1.
Y=peaks; % Матрица plot(Y) % График title(‘plot(Y)’) % Заголовок grid on % Включить сетку
plot(x1,y1,s1,x2,y2,s2,…). Аргументы – один или несколько списков. Для каждого списка рисуется одна линия. В список в заданной последовательности входят – независимая переменная x, функция y, строка признаков s).
Если x пропускается, то по оси x откладываются индексы для y.Одному x может соответствовать несколько функций.Строку признаков можно пропускать, тогда используются признаки по умолчанию.
В примере рисуются три подокна:
Подокно 1 содержит один график. Переменная х в plot пропущена. Поэтому по оси х отложены индексы.
Подокно 2 содержит два графика. Переменная х в plot указана. Поэтому по оси х отложены значения.
Подокно 3 содержит два графика. В plot использованы строки признаков, которые для каждого графика задают стиль, цвет, знак маркера.
x=0:0.1:10;0 % Аргумент x y1=sin(x) % Функция y1 y2=cos(x) % Функция y2 subplot(2,2,1) % Подокно 1 plot(y1) % График 1 grid on % Включить сетку title(‘plot(...,y)’) % Заголовок 1 subplot(2,2,2) % Подокно 2 plot(x,y1,x,y2); % График 2 grid on % Включить сетку title(‘plot(x,y)’) % Заголовок 2 subplot(2,2,3) % Подокно 3 plot(x,y1,'p r -',x,y2,'g o --') % График 3 grid on % Включить сетку title(‘plot(x,y,...)’) % Заголовок 3
8.5.3. Функция plotyy (график, две оси у)
Функция plotyy(x1,y1,x2,y2) используется для отображения в одном окне графиков двух функций с различными масштабами. Для первой функции ось у отображается слева, для второй справа. Для визуализации графики и ось y каждой функции отображаются одним и тем же цветом.
x=0:0.2:20; % Аргумент x y1=sin(x) % Функция 1 y2=2*cos(x) % Функция 2 plotyy(x,y1,x,y2) % Графики grid on % Включить сетку title(‘plotyy’) % Заголовок
8.5.4. Функции, логарифмический масштаб
Функции с логарифмическим масштабом по основанию 10 применяются, когда значения переменных имеют очень большой диапазон. Определены 3 функции:
loglog - по осям х и у,
semilogx - только по оси х,
semilogy - только по оси y.
В примере рисуются три подокна:
Подокно 1. Функция loglog – логарифмический масштаб по осям х и у.
Подокно 2. Функция semilogx - логарифмический масштаб только по оси х.
Подокно 3. Функция semilogy - логарифмический масштаб только по оси y x=0:0.2:10; % Аргумент x y1=exp(x)./(x+1); % Функция subplot(2,2,1) % Подокно 1 loglog(x,y1) % График 1 grid on % Включить сетку title(‘loglog’) % Заголовок 1 subplot(2,2,2) % Подокно 2 semilogx(x,y1) % График 2 grid on % Включить сетку title(‘semilogx’) % Заголовок 2 subplot(2,2,3) % Подокно 3 semilogy(x,y1) % График 3 grid on % Включить сетку title(‘semilogy’) % Заголовок 3
8.5.5. Функции bar и barh (столбцовые диаграммы)
Эти функции отображают данные в виде столбцов:
bar - вертикальных,
barh - горизонтальных.
В примере создаются два подокна, в левом использована функция bar, в правом barh.
x = -2.9:0.2:2.9; % Аргумент х Y= exp(-x.*x) % Функция Y subplot(1,2,1) % Подокно 1 bar(Y) % Графика grid on % Включить сетку subplot(1,2,2) % Подокно 2 barh(Y) % Графика grid on % Включить сетку
8.5.6. Функция hist (гистограмма)
Функция hist(y,x) – столбцовая диаграмма, показывающая число попаданий случайных у в заданный интервал х.
x = -3:0.2:3; % Вектор х y= randn(1000,1) % Случайные у hist(y,x) % Гистограмма grid on % Включить сетку
8.5.7. Функция stairs (ступеньки)
Функция stairs отображает график по вычисленным значениям в ступенчатой форме. Между вычисленными точками рисуется горизонтальная линия.
x = -3:0.2:3; % Вектор х stairs(x,x.^2) % График grid on % Включить сетку
8.5.8. Функция errorbar (с зонами погрешности)
Функция errorbar(x,y,e) рисует график с зонами погрешности. Линия е использует линию y, как ось. Зоны погрешности отображаются в вычисляемых точках и имеют вид вертикальных полосок с горизонтальными ограничителями в обе стороны линии y c высотой, равной модулю e. В примере для пояснения действия функции errorbar в одном окне сначала рисуются исходные функции (y, e), а затем добавляется errorbar.
x = -2*pi:pi/8:2*pi; % Вектор х y=sin(x) % Функция y е=cos(x)./4 % Функция e plot(x,y,x,e) % График hold on % Сохранить график errorbar(x,y,e) % Функция errorbar grid on % Включить сетку
8.5.9. Функция stem (дискретные отсчеты)
Функция stem отображает значения в виде столбиков, на вершине которых имеется маркер. Отображается и нулевая линия.
x=0:0.1:4 % Аргумент х y=sin(x.^2).*exp(-x) % Функция у stem(x,y) % График grid on % Включить сетку
8.5.10. Функция polar (полярные координаты)
polar(угол, модуль) - рисует траекторию конца вектора, задаваемого модулем и углом.
x=0:pi/50:2*pi % Угол polar(x,sin(5*x)) % График
8.5.11. Функция rose (угловые гистограммы)
Функция rose(x,n) рисует угловую гистограмму х для n интервалов. Если n пропущено, то по умолчанию n=20.
x – вектор,
n – число интервалов. rose(1:100),12 % График
8.5.12. Функция compass (комплексные векторы)
Функция compass(z) рисует векторы комплексных чисел в полярных координатах. Каждый вектор характеризуется длиной и углом наклона. Последовательность векторов в массиве не видна.
Z=[-1+2i,-2-3i,2+3i,5+2i] % Векторы compass(Z) % График
8.5.13. Функция feather (комплексные векторы)
Функция feather(z) рисует векторы комплексных чисел в декартовых координатах. Векторы отображаются исходящими из равноудаленных по оси х точек. Каждый вектор характеризуется длиной и углом наклона. Векторы в массиве отображаются последовательно.
x=0:pi/4:2*pi % Задать переменную х z=exp(x*i) % Комплексная функция feather(z) % Ее радиус-векторы
8.5.14. Функция contour (контур)
Функция contour(z) строит для матрицы z контурные линии. Каждый контур соответствует фиксированному значению z. В примере для пояснений использованы два подокна:
в левом отображена поверхность для матрицы,
в правом контурный график. [x,y]=meshgrid(-2:0.2:2,-2:0.2:3) % Задать сетку x и y z=x.*exp(-x.^2-y.^2) % Получить матрицу z subplot (1,2,1) % Создать подрисунок surf(z) % График матрицы subplot (1,2,2) % Создать подрисунок contour(x,y,z) % Контурный график grid on. % Включить сетку
8.5.15. Функция quiver (поля градиентов)
Функция quiver(x,y,px,py,M) рисует векторы градиента z(x,y). Вектор градиента (изменения) отображается стрелкой, которая характеризует его величину и направление. Аргументы функции:
x,y – аргументы функции z(x,y),
px,py – проекции градиента на оси x,y,
M – масштабный коэффициент. [x,y]=meshgrid(-2:0.2:2,-1:0.2:1) % Задать сетку х и у z=x.*exp(-x.^2-y.^2) % Расчет z(x,y) [px,py]=gradient(z,0.2,0.2) % Градиенты quiver(x,y,px,py,2) % График
8.5.16. Функции закрашивания
Используются для закрашивания областей. Вводимые области размещаются поверх имеющихся. Определены функции:
fill(x,y,’цвет’). Это функция, которую можно использовать только для 2D объектов.
patch(x,y,’цвет’). Это универсальная функция, которую можно использовать для 2D и 3D объектов. Результат для 2D объекта аналогичен функции fill.
Аргументы функций:
x, y - векторы координат вершин, Размерность должна быть одинаковой
‘цвет’ - цвет закраски.
В примере рисуются две закрашенные области, первая использует fill, вторая - patch.
x1=[1 2 3 2] % Вектор х1 y1=[0 2 0 4] % Вектор у1 x2=[0 1 3] % Вектор х2 y2=[1 4 2] % Вектор у2
fill(x1,y1,’r’) % Многоугольник 1. patch(x2,y2,’g’) % Многоугольник 2 grid on % Включить сетку
8.5.17. Функция pie (круговая диаграмма)
Функция pie(x,[вектор выступов]) - рисует нормализованную круговую диаграмму для вектора х. Диаграмма для каждого x содержит сектор, угловой размер которого определяется значением x/sum(x). Рядом с сектором выводится размер в процентах. Для визуального выделения любому сектору можно задать выступ. Аргументы функции:
x -- вектор значений,
[вектор выступов] – определяет размер выступа. Если 0, то выступа нет. x=[1 2 3 4 5] % Задать вектор pie(x,[0 2 0 0 1]) % График
8.6. Графика 3D
8.6.1. Перечень функций
plot3 Фигура в аксонометрии
mesh Сетка с окраской линий цветами по значению функции.
meshc Сетка с окраской линий с проекцией в виде контурного графика.
meshz Сетка с окраской линий и столбцы.
surf Сетка с окраской поверхности цветами по значению функции.
surfc Сетка с окраской поверхности с проекцией в виде контурного графика.
surfl Сетка с окраской и освещением.
waterfall Слоеная поверхность.
pcolor Матрица на плоскости в цвете.
contour3 3D контур.
fill3 Закрашенный 3D многоугольник.
patch3 Окраска линий сетки. Окраска ячеек сетки.
pie3 3D круговая диаграмма.
8.6.2. Функция plot3 (график 3D)
plot3 - эквивалент plot для 3D. Формат аналогичен. Строит аксонометрическое отображение матрицы на сетке, которая формируется командой meshgrid[начало : шаг : конец].
[x y]=meshgrid([-3:0.15:3]); % Создать сетку z=x.^2+y.^2; % Расчет матрицы plot3(x,y,z) % График
8.6.3. Функции mesh (сетка с окраской линий)
Это группа функций:
mesh(x,y,z) - окраска линий цветами по значению функции z,
meshc(x,y,z) - окраска линий с проекцией на плоскость x,y в виде контурного графика,
meshz(x,y,z) - окраска линий и столбцы.
В примере создаются три подокна, в которых отображается фигура со сложным рельефом, созданная функцией peaks. В подокнах употреблены указанные функции.
[x,y] = meshgrid(-3:1/8:3) % Создать сетку z = peaks(x,y) % Расчет матрицы subplot(2,2,1) % Подокно 1 mesh(x,y,z) % График. axis([-3 3 -3 3 -8 8]) % Пределы осей subplot(2,2,2) % Подокно 2 meshc(x,y,z) % График. axis([-3 3 -3 3 -8 8]) % Пределы осей subplot(2,2,3) % Подокно 3 meshz(x,y,z) % График. axis([-3 3 -3 3 -8 8]) % Пределы осей
8.6.4. Функции surf (сетка с окраской поверхности)
Это группа функций:
surf(x,y,z) - окраска поверхности цветами по значению функции z(x,y),
surfc(x,y,z) - окраска поверхности с проекцией на плоскость X,Y в виде контурного графика,
surfl(x,y,z) - окраска поверхности и освещение точечным источником (по умолчанию он справа, сзади, сверху).
Группа подобна группе mesh, только окрашивает не линии, а поверхность.
В примере создаются три подокна, в которых отображается фигура со сложным рельефом, созданная функцией peaks. В подокнах употреблены перечисленные функции:
[x,y] = meshgrid(-3:1/8:3) % Создать сетку z = peaks(x,y) % Расчет матрицы subplot(2,2,1) % Подокно 1 surf(x,y,z) % График. axis([-3 3 -3 3 -8 8]) % Пределы осей subplot(2,2,2) % Подокно 2 surfc(x,y,z) % График. axis([-3 3 -3 3 -8 8]) % Пределы осей subplot(2,2,3) % Подокно 3 surfl(x,y,z) % График. axis([-3 3 -3 3 -8 8]) % Пределы осей
8.6.5. Функция waterfall (слоеная поверхность)
Функция waterfall(x,y,z) создает слоеный график, выводя значения функции z от х слоями для заданных у.
Аргументы функции:
x, y - независимые переменные,
z - функция.
В примере создаются два подокна. В верхнем обычный поверхностный график, в нижнем - слоеный.
[X,Y]=meshgrid([-3:0.2:3]) % Создать сетку Z=sin(X)./(X.^2+Y.^2+0.3) % Функция subplot(2,1,1) % Создать подокно 1 surf(X,Y,Z) % Поверхностный график colorbar % Добавить шкалу цветов subplot(2,1,2) % Создать подокно 2 waterfall(X,Y,Z) % Слоеный график
colorbar % Добавить шкалу цветов
8.6.6. Функция pcolor (на плоскости в цветах)
Функция pcolor(z) создает двумерный график, в котором поверхность для матрицы z отображается цветами.
В примере создаются два подокна. В верхнем обычный поверхностный график, в нижнем - матрица на плоскости в цветах.
z=peaks(40) % Создать матрицу subplot(2,1,1) % Создать подокно 1 mesh(X,Y,Z) % Поверхностный график colorbar % Шкала цветов subplot(2,1,2) % Создать подокно 2 pcolor(z) % Матрица на плоскости colorbar % Шкала цветов
8.6.7. Функция contour3 (3D контур)
Функция contour3(z) рисует для поверхности z контуры заданного уровня. Сама поверхность не рисуется.
[x,y]=meshgrid([-3:0.1:3]) % Задать сетку z=sin(x)./(x.^2+y.^2+0.3) % Функция contour3(z) % График. colorbar % Шкала цветов
8.6.8. Функции fill3, patch (многоугольник)
Для закрашивания пространственных многоугольников. определены две функции:
fill3(x,y,z,'цвет'), только для 3D объектов.
patch(x,y,z,'цвет'), универсальная для 2D и 3D объектов.
Аргументы:
x, y, z - векторы координат вершин, размерность должна быть одинаковой.
'цвет') - цвет закраски.
Многоугольники рисуются с учетом размещения в пространстве. Изломы плоскостей многоугольников не показываются.
x1=[1 2 3 2] % Вектор х1 y1=[0 2 0 4] % Вектор у1 z1=[0 2 0 4] % Вектор z1 x2=[0 1 3 0] % Вектор х2 y2=[1 4 2 1] % Вектор у2 z2=[0 2 0 2] % Вектор z2 fill3(x1,y1,z1,'r') % График 1 grid on % Включить сетку
patch(x2,y2,z2,'g') % График 2%
8.6.9. Функция pie3 (объемная круговая)
Функция pie3(x,[вектор выступов]) - рисует нормализованную 3D круговую диаграмму для вектора х. Диаграмма для каждого x содержит сектор, угловой размер которого определяется значением x/sum(x). Рядом с сектором выводится размер в процентах. Для визуального выделения любому сектору можно задать выступ. Аргументы функции:
x -- вектор значений,
[вектор выступов] – определяет размер выступа. Если 0, то выступа нет. x=[1 2 3 4 5] % Вектор значений pie3(x,[0 2 0 1 0]) % График
8.7. Функции трех переменных
Определены функции:
slice - cечение поверхности.
cylinder - цилиндр.
sphere - сфера.
trimesh
trisurf - фигура с треугольными гранями.
8.7.1. Функция slice (сечение поверхности)
Функция slice строит сечения по осям независимых переменных x, y, z, в которых цветовой окраской отображаются значения функции v(x,y,z). Формат функции:
slice(x,y,z,v,[ вектор x],[ вектор y] ,[ вектор z]).
Векторы независимых переменных могут содержать любое число значений, они может быть и пустыми, но квадратные скобки пропускать нельзя. Аргументы:
x,y,z - независимые переменные,
v - функция трех переменных,
[вектор х], [вектор у], [вектор z] - сечения по осям x,y,z. [x,y,z]=meshgrid(-2.5:.5:2.5) % Сетка переменных v=x.^2+y.^2+z.^2 % Расчет функции slice(x,y,z,v,[0 2],[2 ],[-2 2]) % График
8.7.2. Функция cylinder (цилиндр)
Функция cylinder(r,h) создает матрицу поверхности цилиндра с заданным радиусом r и высотой h. Применяется для последующего рисования оператором поверхностной графики.
В примере создаются два подокна, в которых рисуются фигуры. В правом y, z переставлены, что приводит к повороту фигуры.
r=10 % Радиус h=30 % Высота [x,y,z]=cylinder(r,h) % Создать матрицу subplot(1,2,1) % Подокно 1 surf(x,y,z,x) % Рисовать с цветами по значению х subplot(1,2,2) % Подокно 2 surf(x,z,y,x) % Рисовать с цветами по значению x
8.7.3. Функция sphere (сфера)
Функция sphere(r) создает матрицу поверхности сферы с заданным радиусом r. Применяется для последующего рисования оператором поверхностной графики.
В примере создаются два подокна, в которых рисуются фигуры. В правом подокне переменные y, z переставлены, что приводит к повороту фигуры.
r=10 % Радиус h=30 % Высота [x,y,z]=sphere(r) % Создать матрицу subplot(1,2,1) % Подокно 1 surf(x,y,z,x) % Рисовать с цветами по значению х subplot(1,2,2) % Подокно 2 surf(x,z,y,x) % Рисовать с цветами по значению x
8.7.4. Функции trimesh, trisurf (треугольные грани)
Функции trimesh, trisurf рисуют фигуры с треугольными гранями. Разница функций в способе закраски:
rimesh(tri,x,y,z,c) графика с закраской линий,
trisurf(tri,x,y,z,c) графика с закраской ячеек.
Аргументы:
tri - каркас треугольниками,
x,y,z - координаты,
c - признак цвета граней (если с пропущено, то цвета по z).
В примере создаются два подокна, в которых рисуются фигуры с использованием указанных функций (в левом - trimesh, в правом –trisurf).
x=rand(1,20) % Аргумент x y=rand(1,20) % Аргумент y z=sin(x.*y) % Функция tri=delaunay(x,y) % Каркас subplot(1,2,1) % Подокно 1 trimesh(tri,x,z,y) % График 1 subplot(1,2,2) % Подокно 2 trisurf(tri,x,z,y) % График 2
8.8. Оформление графики, детали
8.8.1. Метки осей, заголовок окна, текст
Предназначены для помещения в графическое окно пояснений. Определены функции:
title(‘string’). Помещает строку 'string' в заголовок окна.
xlabel(‘Ось х’). Помещает строку 'Ось х' в заголовок оси х.
ylabel(‘Ось y’). Помещает строку 'Ось y' в заголовок оси y.
zlabel(‘Ось z’). Помещает строку 'Ось z' в заголовок оси z.
text(x,y,’string’). Помещает строку 'string' в позицию x,y.
text(x,y,z,’string’). Помещает строку 'string' в позицию x,y,z.
gtext(x,y,'string'). Строку 'string' ставим мышью. Функция выводит курсор мыши для выбора позиции.
8.8.2. Легенда
Легенда (legend) – это поле из строк, в которых отображается формат линий графика с пояснением. Для работы с легендой определены функции:
legend(string1, string 2, string3,…). Вывод легенды в текущий график.. legend(h,string1, string 2, string3,…). Помещает легенду в график с
дескриптором h. legend(ax,…). Помещает легенду на оси x.
legend(m). Помещает легенду по осям, используя данные матрицы m.
legend off. Устраняет выведенную легенду.
legend. Возобновляет текущую легенду, если их много.
legend(…, Pos) Помещает легенду на график в позицию Pos, с номерами: 0 - лучшее место, 1 - верхний правый угол, 2 - верхний левый угол, 3 - нижний левый угол, 4 - нижний правый угол, 5 - справа от графика.
8.8.3. Маркировка линий равного уровня
Функция clabel(c) делает пометки линий контурного графика с. В линии контурного графика делается разрыв, в котором ставиться символ +, рядом с которым выводится значение уровня.
[x,y]=meshgrid(-3:0.1:3) % Создать сетку z=sin(x)./(x.^2+y.^2+0.3) % Получить матрицу z c=contour(x,y,z,10) % График clabel(с) % Сделать на нем метки
8.8.4. Палитра и шкала цветов
Список палитр:
hsv Радуга. Красный => синий => зеленый => красный
default По умолчанию = jet.
Красный=>желтый=>зеленый=>синий=>черный
hot Жара. Белый=>желтый=>красный=>черный.
gray Серая. Белый => черный.
bone Серая с синевой.
copper Серая с оттенками меди.
pink Серая с розовыми оттенками.
white Белая. Все белое. flag Флаги. Чередуются 4: черный, синий, белый, красный.
lines Цвета линий. Чередуются 6 неярких цветов .
colorcube
Расширенная RGB.
Произвольные цвета.
jet Разновидность HSV.
Красный=>желтый=>зеленый=>синий=>черный
prism Призматическая.
cool Голубо-фиолетовая.
automn Осень. Желтый=> красный.
spring Весна. Желтый=>красный=>фиолетовый.
winter Зима. Зеленый => синий.
summer Лето. Желтый => зеленый.
Палитру можно вывести на график в виде столбца:
Вертикальный столбец справа от графика.
Горизонтальный столбец под графиком.
По умолчанию используется столбец вертикальный, справа.
Для работы с палитрами определены функции:
colormap('палитра') - выбор палитры.
colorbar('vert') - вывод шкалы цветов вертикальным столбцом.
colorbar(‘horiz’) - вывод шкалы цветов горизонтальным столбцом.
colorbar - вывод шкалы цветов столбцом по умолчанию.
В примере создаются четыре окна для демонстрации палитр (палитра это свойство объекта figure, а не axes). Показан код для одного окна. Другие отличаются палитрой и заголовком.
z=peaks(40) % Создать матрицу colormap('jet') % Палитра surf(z) % Поверхностный график colorbar % Шкала цветов title('Palette jet') % Заголовок
8.8.5. Функции shading (окраска поверхностей)
Для окраски поверхностей определены функции:
shading flat. По значениям координат.
shading interp. Билинейная интерполяция.
shading faceted. Равномерная ячеек., используется по умолчанию
В примере создаются три подокна для демонстрации окраски с использованием указанных функций.
z=peaks(40) % Создать матрицу subplot(2,2,1) % Подокно 1 surf(z) % Поверхностный график title('shading faceted') % Заголовок 1 subplot(2,2,2) % Подокно 2 surf(z) % Поверхностный график shading flat % Раскраска 2 title('shading flat') % Заголовок 2 subplot(2,2,3) % Подокно 2 surf(z) % Поверхностный график shading interp % Раскраска 3 title('shading interp') % Заголовок 3
9. Создание графического ПИ
9.1. Визуальное программирование GUIDE
Функции графического ПИ Их можно посмотреть в браузере функций в каталоге GUI Development.
Определены категории:
Predefined Dialog Boxes Предопределение диалоговых блоков
User Interface Deployment Интерфейсы, разработанные пользователем
User Interface Development Разработка интерфейса пользователя
Objects from Callbacks Объекты от обработчика событий
GUI Utilities Утилиты графического интерфейса пользователя
Program Execution Исполнение программ
Последние версии системы MATLAB приобрели специальные инструментальные средства для визуально ориентированного программирования и проектирования приложений с GUI. Состав этих средств следующий:
GUIDE – конструктор графического интерфейса;
Property Inspector – инспектор свойств;
Object Browser – браузер объекта;
M_file Editor – редактор M_файлов;
Component Callbacks – средство создания функций обработки событий для компонентов;
Figure Callbacks – средства создания функций для обработки событий окон;
Align Objects – средства выравнивания положения объектов;
Grid and Rules – средства управления выводом сетки и линейками просмотра;
Menu Editor – редактор меню;
The Order Editor – средство изменения порядка активизации компонентов
при нажатии клавиши Tab.
Эти средства дают достаточный набор средств для визуально ориентированного программирования и проектирования GUI. Такой подход характерен для ряда современных визуально ориентированных языков программирования, таких как Visual_BASIC, Visual_C# и др., и существенно облегчает создание приложений с GUI. Это обусловлено тем, что в данном случае генерация программного кода происходит автоматически, что минимизирует усилия пользователя по программированию, а порою вообще не требует таковых.
Главным средством в визуально ориентированном проектировании GUI является приложение GUIDE (GUI Designer). При работе с инструментом GUIDE можно создавать окна GUI путем выбора мышью нужных элементов управления и перемещения их в окно GUI. Таким образом, могут создаваться различные элементы интерфейса, например кнопки, раскрывающиеся списки, линейки прокрутки и т. д. При этом возможно программирование событий, которые возникают при обращении пользователя к заданным элементам управления. Визуальное программирование совмещается с объектно- ориентированным, в частности в первом широко используется свойство наследования признаков родительских объектов их потомками.
Приложение с GUI может состоять из одного окна (основного) или нескольких окон и осуществлять вывод графической и текстовой информации как в основное окно приложения, так и в отдельные окна. MATLAB имеет ряд функций создания стандартных диалоговых окон для открытия и сохранения файлов, печати, выбора шрифта для текстовых объектов, создания окон для ввода данных и др. Эти средства (объекты) можно использовать в приложениях пользователя.
При создании приложений с GUI полезны следующие средства системы MATLAB:
MATLAB: Creating Graphical User Interfaces;
MATLAB: Functions – Categorical List: Creating Graphical User Interfaces;
MATLAB: Handle Graphics Property Browser.
9.2. Открытие окна инструмента GUIDE
Для открытия окна инструмента GUIDE надо использовать команду File>>New>>GUI. При этом инструмент запускается и появляется диалоговое окно GUIDE Quick Start.
Это окно имеет две вкладки:
Create New GUI – создание нового приложения с GUI.
Open Existing GUI – открытие уже существующего приложения с GUI.
На вкладке создания нового приложения Create New GUI имеется список из четырех заготовок:
Blank GUI – пустое окно приложения,
GUI with Uicontrols – заготовка с кнопками, переключателями и областями ввода, иллюстрирующая создание приложения с GUI вычислительного характера;
GUI with Axes and Menu – заготовка с осями, меню, кнопкой и раскрывающимся списком, иллюстрирующая создание приложения с GUI графического характера;
Modal Question Dialog – заготовка для модального окна, иллюстрирующего простейший диалог.
Внизу вкладки Create New GUI есть установка опции «Save on startup as:», позволяющая сразу задать имя файла, в котором будет храниться окно графического интерфейса при выходе из режима редактирования. Но, поскольку приложение всегда можно будет сохранить и в дальнейшем, в процессе редактирования создаваемого окна GUI, этот флаг устанавливать не обязательно.
Выбрав мышью на вкладке Create New GUI заготовкуBlank GUI и нажав клавишу OK, можно наблюдать инициализацию инструмента GUIDE. При этом появляется временное окошко инициализации, показанное на рис. 12.2.
По окончании инициализации появляется основное окно среды GUIDE, содержащее поле окна приложения, вертикальную панель инструментов для добавления элементов интерфейса, горизонтальную панель инструментов и обычное меню.
С назначением кнопок панелей можно ознакомиться по подсказкам, которые появляются, если установить курсор мыши на нужную кнопку панели и задержать его на пару секунд. Одна из таких подсказок видна для кнопки Button Group.
Представление панели объектов можно изменить, вызвав командой File=>Preferencies окно предпочтений, в котором установить флаг отображения имен объектов.
Получим окно более информативное:
Окно имеет титульную строку, меню и две панели инструментов –
обычную горизонтальную,
вертикальную с набором объектов GUI.
Горизонтальная панель инструментов позволяет работать с окном приложения с GUI, не обращаясь к его меню. На этой панели в порядке слева направо расположены следующие кнопки:
New Figure – создание нового окна с GUI;
Open Figure – открыть существующее окно GUI;
Save Figure – сохранить окно GUI;
Сut – вырезание объекта и перенос его в буфер;
Copy – копирование объекта в буфер;
Paste – перенос объекта из буфера с сохранением его в нем;
Undo – отмена последней операции;
Redo – возврат к отмененной операции;
Align Objects – выравнивание объектов;
Menu Editor – вывод окна редактора меню;
Tab Order Editor – вывод окна редактора порядка обвода элементов клавишей Tab;
Toolbar Editor - редактор панели инструментов.
M_file Editor – вывод окна редактора M_файлов;
Property Inspector – вывод окна инспектора свойств;
Object Browser – вывод окна браузера объектов;
Run Figure – запуск созданного приложения с GUI.
Вертикальная панель с объектами GUI содержит следующие кнопки:
Select – селекция (выбор) объектов создаваемого окна GUI.
Push Button – обычная кнопка.
Slider – линейка прокрутки (слайдер).
Radio Button – радиокнопка (зависимый переключатель).
Check Box – зависимый переключатель.
Edit Text –редактор текста.
Static Text – статический текст.
Pop-up Menu – открывающийся список.
Listbox – список.
Toggle Button– кнопка.переключатель.
Table - таблица.
Axes – оси графика.
Panel – панель.
Button Group – кнопка для группы объектов.
ActiveX Component – компонент ActiveX..
При выборе ActiveX отображается окно выбора конкретного оюъгкта. Например, можно выбрать календарь.
В итоге окно GUI примет вид:
После добавления элемента интерфейса необходимо задать его имя (тег), который будет идентифицировать данный объект среди всех остальных объектов. Тег объекта понадобится для получения и установки его свойств и программирования событий, возникающих при обращении пользователя к элементу управления, например при нажатии на кнопку.
Для задания тега следует перейти к инспектору свойств. Проще всего это сделать двойным щелчком мыши по добавленному объекту. При этом появляется окно инспектора свойств, в котором отображены его свойства.
Созданная описанным образом GUI пока не действует. выполнялись какие либо действия, объект должен быть связан с программой обработки событий. Для каждого объекта в окне приложения с GUI шаблон обработчика, именуемый Callback, создается приложением GUIDE автоматически при его сохранении с именем, например, MyGUI. При сохранении создаются два файла:
MyCUI.fig - графическое окно GUI.
MyGUI.m - исполняемый файл.
А это результат прогона:
Меню окна GUIDE содержит следующие позиции:
File – файловые операции, вызов окна Preferences и печать;
Edit – обычные операции редактирования и работы с буфером Windows;
View – просмотр деталей GUI;
Layout – разметка окна;
Tools – вызов инструментальных средств;
Help – вызов справки.
Каждый объект (компонент) GUI имеет ряд свойств. Их полный набор задается таблицей из 41 свойства, представленной ниже.
Свойство Назначение Значения
BackgroundColor Цвет фона [0.753, 0.753, 0.753]
BeingDeleted Возможность удаления on – включено, off –выключено
BusyAction Реакция на прерывание queone –в очередь, cancel –игнорировать
ButtonDownFc Указатель на функцию обработки нажатия правой клавиши мыши
Cdata Массив для хранения Тип truecolor
изображения на поверхности объекта
Callback Указатель на функцию обработки события
on – включено, off –выключено
Children Указатели на потомков Clipping Признак отсечения on – включено,
off –выключено
CreateFn Функция «Создание объекта»
DeleteFn Функция «Удаление объекта»
Enable Доступ к объекту on – доступ есть, off – доступа нет
Extend Габаритный прямоугольник
FontAngle Наклон букв normal, italic, oblicue
FontName Имя шрифта Из списка Windows
FontSize Размер шрифта Из списка Windows
FontUnits Единицы измерения шрифтов
inches, centimeterts, normalized, pixels
FontWeight Толщина контура букв normal, light, demi, bold
ForegroundColor Цвет рисования черный
[0.0, 0.0, 0.0]
HandleVisibility Видимости указателя обработчика событий
on – доступен, off – не доступен
HitTest Разрешение поиска объекта по свойству
on – разрешен, off – не разрешен
HorizontalAlligment Выравнивание по горизонтали
left, right, center
Interruptible Прерывание on – разрешено, off – не разрешено
KeyPressFcn Указатель на «Нажата кнопка» когда компонент находится в фокусе
ListBoxTop Индекс верхушки списка
9
Max Максимальное Value 1
Min Минимальное Value 0
Perent Указатель на родительский объект
Position Позиция объекта в виде вектора
Selected Признак выбора объекта
on – выбран, off – не выбран
SelectionHighlight Повышенная яркости on – включено, off – выключено
SliderStep Вектор перемещений слайдера
String Надпись
Style Стиль = тип объекта
Tag Тег = имя объекта Пустая строка
TooltipString Текст всплывающей подсказки
Type Класс объекта
UIContextNenu Всплывающее меню объекта
Units Единицы измерения линейных величин
inches, centimeterts
UserData Массив данных объекта
[ ] – пустой массив
Value Значение
Visible Признак видимости объекта
on – виден, off – не виден
10. Внешние интерфейсы
Функции графического ПИ Их можно посмотреть в браузере функций в каталоге External Interfaces
Определены категории:
Shared Libraries Разделяемые библиотеки
Java Java
.NET .NET
Component Object Model and ActiveX Объекты COM и ActiveX
Web Services Web службы
Serial Port Devices Устройства последовательного порта
Вывод данных осуществляется функцией disp(Данные). Выводит любые данные в командное окно.
>> disp('Это сообщение') Это сообщение >> disp(pi) 3.1416 >> disp(123) 123
Для создания паузы определены функции:
Функция Описание
pause Пауза до нажатия любой клавиши.
pause(N) Пауза на N секунд.
pause on Включает режим отработки пауз.
pause off Выключает режим отработки пауз.
for i=1:5 % Начало цикла
i^2 % Вычисление if i=3 pause(5), end % Проверка на паузу end % Конец цикла
MATLAB может работать со следующими форматами файлов:
Формат файла Содержимое файла Расширение
MATLAB Рабочая область MATLAB .mat
Текст любое
XML Текст, форматированный в XML .xml
Звук NeXT/Sun .au
Microsoft Wave .wav
Видеоклип Звук, видео .avi
Научные данные CDF – Common Data Format .cdf
FITS – Flexible Image Nransport System .fits
NDF – Nierarchical Data Format .hdf
Электронные таблицы
Excel .xls
Lotus 123 .wkl
Графика TIFF .tiff
PNG .png
HDF .hdf
BMP .bmp
JPEG .jpg
GIF .gif
PCX .pcx
XWD .xwd
Cursor .cur
Icon .ico
В MATLAB есть несколько способов загрузки файлов с диска в рабочую область. Самый простой - мастер импорта, пользователю нужно в диалоге выбирать предлагаемые действия.
Диалоговый ввод осуществляется функцией input(‘строка приглашения’,’s’). Она выводит в командное окно текст с приглашением. Если нужно ввести численное значение, то после ввода текстового представления нужно его преобразовать в число.
Пример 1. Ввод числа в виде строки
>> r= input('Введите радиус окружности: ','s'); % Запрос Введите радиус окружности: 25 % Ввод >> r % Вывод
r = 25 >>
Результат - текст.
Пример 2. Вычисление с введенным значением
>> r= input('Введите радиус окружности: ','s'); % Запрос Введите радиус окружности: 25 % Ввод >> r*2 % Вывод ans = 100 106 >>
Результат - вектор из номеров символов 2 и 5 в таблице кодировки, умноженные на 2.