Что означает в матлабе

Содержание

Цель занятия: изучение интерфейса пользователя системы MATLAB и основ работы с системой в режиме прямых вычислений.

Основные теоретические сведения

Исторически MATLAB разрабатывался как диалоговая среда для матричных вычислений (MATrix LABoratory). Со временем пакет был оснащен хорошей графической системой, дополнен средствами компьютерной алгебры от Maple и усилен библиотеками команд (или Toolboxes), предназначенными для эффективной работы со специальными классами задач.

В состав MATLAB входят интерпретатор команд, графическая оболочка, редактор-отладчик, библиотеки команд, компилятор, символьное ядро пакета Maple для проведения аналитических вычислений, математические библиотеки MATLAB на C/C++, генератор отчетов и богатый инструментарий (Toolboxes).

Интерфейс MATLAB вполне отвечает современным канонам (см. рисунок 1.1). Он многооконный и имеет ряд средств прямого доступа к различным компонентам системы. Следует обратить внимание на следующие кнопки панели инструментов:

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

Open file — открывает окно для загрузки файлов Matlab;

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

Help — открывает окно справки.

Эти функции дублируются в очень простом меню системы MATLAB.

В левой части окна системы появились окна со вкладками Launch Pad/Workspace доступа к компонентам системы и вкладками текущей директории Current Directory и истории сессии History. Они обеспечивают оперативный контроль за состоянием системы. Выводимые на экран окна интерфейса MATLAB могут быть включены или отключены из пункта меню View.

Вся работа организуется через командное окно (Command Window), которое появляется при запуске программы. В процессе работы данные располагаются в памяти (Workspace) в виде матриц.

Рисунок 1.1 – Интерфейс программы Matlab

Все расчеты в MATLAB выполняются с двойной точностью, а для представления чисел на экране имеются разные форматы. Нужный формат может быть определен в меню (File/Preferences) либо при помощи команды format. Существуют следующие способы представления чисел (табл.1.1).

Таблица 1.1 Форматы вывода на экран

Число отображается с 4 цифрами после десятичной точки или в формате short e

Число в экспоненциальной форме с мантиссой из 5 цифр и показателем из 3 цифр

Представление в виде рационального дробного числа

Число с 16 десятичными цифрами

Число в экспоненциальной форме с мантиссой из 16 цифр и показателем из 3 цифр

Число в шестнадцатеричной форме

Переменные в MATLAB не нужно предварительно описывать, указывая их тип. Все данные хранятся в виде массивов: числовые переменные (внутренний тип numeriс), текстовые строки (char), ячейки (сеll) и структуры (struct). Двумерный массив – это матрица, одномерный – вектор, а скаляр – матрица размера 1×1. Имя переменной должно начинаться с буквы, за ней могут идти буквы, цифры и символ подчеркивания. Допустимы имена любой длины, но MATLAB идентифицирует их по первым 31 символам и различает большие и малые буквы. В MATLAB имеется ряд констант (табл.1.2).

Таблица 1.2 Зарезервированные имена констант

Результат последней операции

Максимальное вещественное число

Минимальное вещественное число

Наибольшее значение индекса размерности массива

Отметим, что имя NaN (Not-a-Number) зарезервировано для результата операций 0/0, 0*inf, inf-inf и т.п.

Таблица 1.3 Специальные символы

Квадратные скобки используются при задании матриц и векторов

Пробел служит для разделения элементов матриц

Запятая применяется для разделения элементов матриц и оператора в строке ввода

Точка с запятой отделяет строки матриц, а точка с запятой в конце оператора (команды) отменяет вывод результата на экран

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

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

Точка отделяет дробную часть числа от целой его части, а также применяется в составе комбинированных знаков (.*, .^, ./, .)

Три точки и более в конце строки отмечают продолжение выражения на следующей строчке

Знак процента означает начало комментария

Апостроф указывает на символьные строки, а для включения самого апострофа в символьную строку нужно поставить два апострофа подряд

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

MATLAB. Интерпретатор обрабатывает введенное значение и выдает результаты: числовые и строковые данные, предупреждения и сообщения об ошибках. Строка ввода помечена знаком >>.

При работе с MATLAB в командном режиме действует простейший строчный редактор. Обратите особое внимание на применение клавиш Up и Down (стрелки курсора "Вверх" и "Вниз"). Они используются для подстановки после маркера строки ввода >> ранее введенных строк из специального стека, например, для их исправления, дублирования или дополнения. При этом указанные клавиши обеспечивают перелистывание ранее введенных строк снизу вверх или сверху вниз.

Имена переменных должны начинаться с буквы. Знак = соответствует операции присваивания. Нажатие клавиши Enter заставляет систему вычислить выражение и показать результат. Если запись оператора не заканчивается символом «;», то результат выводится в командное окно, в противном случае – не выводится. Если оператор не содержит знака присваивания «=», то значение результата присваивается системной переменной ans (см. рисунок 1.2).

Читайте также:  Глубина и ширина канала

Все значения переменных, вычисленные в течение текущего сеанса работы, сохраняются в специально зарезервированной области памяти компьютера, называемой рабочим пространством системы MATLAB (Workspace).

Для просмотра значения любой переменной из текущего рабочего пространства системы достаточно набрать ее имя и нажать клавишу Enter.

Рисунок 1.2 – Демонстрация выполнения команды присваивания

После окончания сеанса работы с системой MATLAB все ранее вычисленные переменные теряются. Чтобы сохранить в файле на диске компьютера содержимое рабочего пространства системы MATLAB, нужно выполнить команду меню File Save Workspace As … .По умолчанию расширение имени файла mat, поэтому такие файлы принято называть МАТ-файлами.

Система MATLAB работает как с действительными, так и с комплексными числами. Перед использованием операций с комплексными числами необходимо определить переменную i = sqrt(–1) или j = sqrt(–1). В арифметических выражениях применяются следующие знаки операций:

/ – деление слева направо;

– деление справа налево;

^ – возведение в степень.

Система MATLAB позволяет вычислять различные математические функции. Следующие элементарные алгебраические функции имеют в качестве аргумента одно или два действительных (x, y) или одно комплексное (z) число (табл. 1.4).

Таблица 1.4 Элементарные алгебраические функции

Вычисление модуля комплексного числа z или абсолютного значения действительного числа x.

Вычисление аргумента z.

Вычисление квадратного корня чисел z и x

Вычисление действительной части комплексного числа z.

Вычисление мнимой части комплексного числа z.

Округление до целого.

Округление до ближайшего целого в сторону нуля.

Вычисление остатка от деления x на y.

Вычисление натурального логарифма числа x.

Вычисление десятичного логарифма числа x.

Система MATLAB предоставляет возможности для вычисления следующих тригонометрических и обратных тригонометрических функций переменной x (табл.1.5).

MATLAB
Тип Программы математического моделирования
Разработчик The MathWorks
Написана на C [1] , Java
Операционная система Unix, Linux, OS X, Microsoft Windows
Первый выпуск 1984
Последняя версия R2019b [2] (Сентябрь 2019)
Читаемые форматы файлов Файл MATLAB-M [d] , Hierarchical Data Format [3] , MAT [d] , MAT-file, Level 4 [d] , MAT-file, Level 5, version 6 [d] , MAT-file, Level 5, version 7 [d] , MAT-file, Level 5, version 7.3 [d] и BigTIFF [d]
Создаваемые форматы файлов Файл MATLAB-M [d] и Hierarchical Data Format [4]
Состояние В активной разработке
Лицензия Проприетарное
Сайт mathworks.com
Медиафайлы на Викискладе

MATLAB (сокращение от англ. «Matrix Laboratory» , в русском языке произносится как Матла́б) — пакет прикладных программ для решения задач технических вычислений. Пакет используют более миллиона инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris (начиная с версии R2010b поддержка Solaris прекращена [5] ) и Windows [6] .

Содержание

История [ править | править код ]

MATLAB как язык программирования был разработан Кливом Моулером (англ. Cleve Moler ) в конце 1970-х годов когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACK без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little ) познакомился с этим языком во время визита Клива Моулера в Стэнфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert ). Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

Язык MATLAB [ править | править код ]

Описание языка [ править | править код ]

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

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

Основной особенностью языка MATLAB являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно» (англ. Think vectorized ).

Векторы и матрицы [ править | править код ]

Пример кода, являющегося частью функции magic.m, генерирующего магический квадрат M для нечётных значений размера стороны n:

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

Графики [ править | править код ]

Программа MATLAB может создавать трехмерную графику с помощью функций surf, plot3 или mesh.

Этот код создаст каркасный 3D график sinc-функции sin ⁡ R R <displaystyle <sin R over R>> .

Применение [ править | править код ]

Математика и вычисления [ править | править код ]

MATLAB предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики, в частности:

  • Матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные значения и векторы, сингулярности, факторизация матриц и другие.
  • Многочлены и интерполяция — корни многочленов, операции над многочленами и их дифференцирование, интерполяция и экстраполяциякривых и другие.
  • Математическая статистика и анализ данных — статистические функции, статистическая регрессия, цифровая фильтрация, быстрое преобразование Фурье и другие.
  • Обработка данных — набор специальных функций, включая построение графиков, оптимизацию, поиск нулей, численное интегрирование (в квадратурах) и другие.
  • Дифференциальные уравнения — решение дифференциальных и дифференциально-алгебраических уравнений, дифференциальных уравнений с запаздыванием, уравнений с ограничениями, уравнений в частных производных и другие.
  • Разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.
  • Целочисленная арифметика — выполнение операций целочисленной арифметики в среде MATLAB.
Читайте также:  Замена видеокарты ноутбука на более мощную

Разработка алгоритмов [ править | править код ]

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

Визуализация данных [ править | править код ]

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

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

Независимые приложения [ править | править код ]

Программы MATLAB, как консольные, так и с графическим интерфейсом пользователя, могут быть собраны с помощью компоненты MATLAB Compiler в независимые от MATLAB исполняемые приложения или динамические библиотеки, для запуска которых на других компьютерах, однако, требуется установка свободно распространяемой среды MATLAB Compiler Runtime (MCR) [7] .

Внешние интерфейсы [ править | править код ]

Пакет MATLAB включает различные интерфейсы для получения доступа к внешним подпрограммам, написанным на других языках программирования, данным, клиентам и серверам, общающимся через технологии Component Object Model или Dynamic Data Exchange, а также периферийным устройствам, которые взаимодействуют напрямую с MATLAB. Многие из этих возможностей известны под названием MATLAB API.

COM [ править | править код ]

Пакет MATLAB предоставляет доступ к функциям, позволяющим создавать, манипулировать и удалять COM-объекты (как клиенты, так и серверы). Поддерживается также технология ActiveX. Все COM-объекты принадлежат к специальному COM-классу пакета MATLAB. Все программы, имеющие функции контроллера автоматизации (англ. Automation controller ) могут иметь доступ к MATLAB как к серверу автоматизации (англ. Automation server ).

.NET [ править | править код ]

Пакет MATLAB в Microsoft Windows предоставляет доступ к программной платформе .NET Framework. Имеется возможность загружать .NET сборки (Assemblies) и работать с объектами .NET классов из среды MATLAB. В версии MATLAB 7.11 (R2010b) поддерживается .NET Framework версий 2.0, 3.0, 3.5 и 4.0.

DDE [ править | править код ]

Пакет MATLAB содержит функции, которые позволяют ему получать доступ к другим приложениям среды Windows, равно как и этим приложениям получать доступ к данным MATLAB, посредством технологии динамического обмена данными (DDE). Каждое приложение, которое может быть DDE-сервером, имеет своё уникальное идентификационное имя. Для MATLAB это имя — Matlab.

Веб-сервисы [ править | править код ]

В MATLAB существует возможность вызывать методы веб-сервисов. Специальная функция создаёт класс, основываясь на методах API веб-сервиса.

MATLAB взаимодействует с клиентом веб-сервиса с помощью принятия от него посылок, их обработки и посылок ответа. Поддерживаются следующие технологии: Simple Object Access Protocol (SOAP) и Web Services Description Language (WSDL).

Последовательный порт [ править | править код ]

Интерфейс для последовательного порта пакета MATLAB обеспечивает прямой доступ к периферийным устройствам, таким как модемы, принтеры и научное оборудование, подключающееся к компьютеру через последовательный порт (COM-порт). Интерфейс работает путём создания объекта специального класса для последовательного порта. Имеющиеся методы этого класса позволяют считывать и записывать данные в последовательный порт, использовать события и обработчики событий, а также записывать информацию на диск компьютера в режиме реального времени. Это бывает необходимо при проведении экспериментов, симуляции систем реального времени и для других приложений.

MEX-файлы [ править | править код ]

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

DLL [ править | править код ]

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

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

Наборы инструментов [ править | править код ]

Для MATLAB имеется возможность создавать специальные наборы инструментов (англ. toolbox ), расширяющие его функциональность. Наборы инструментов представляют собой коллекции функций и объектов, написанных на языке MATLAB для решения определённого класса задач. Компания Mathworks поставляет наборы инструментов, которые используются во многих областях, включая следующие:

  • Цифровая обработка сигналов, изображений и данных: Signal Processing Toolbox,DSP System Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communications System Toolbox — наборы функций и объектов, позволяющих решать широкий спектр задач обработки сигналов, изображений, проектирования цифровых фильтров и систем связи.
  • Системы управления: Control Systems Toolbox, Robust Control Toolbox, System Identification Toolbox, Model Predictive Control Toolbox, Model-Based Calibration Toolbox — наборы функций и объектов, облегчающих анализ и синтез динамических систем, проектирование, моделирование и идентификацию систем управления, включая современные алгоритмы управления, такие как робастное управление, H∞-управление, ЛМН-синтез, µ-синтез и другие.
  • Финансовый анализ: Econometrics Toolbox,Financial Instruments Toolbox, Financial Toolbox, Datafeed Toolbox, Trading Toolbox — наборы функций и объектов, позволяющие быстро и эффективно собирать, обрабатывать и передавать различную финансовую информацию.
  • Анализ и синтез географических карт, включая трёхмерные: Mapping Toolbox.
  • Сбор и анализ экспериментальных данных: Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox, OPC Toolbox — наборы функций и объектов, позволяющих сохранять и обрабатывать данные, полученные в ходе экспериментов, в том числе в реальном времени. Поддерживается широкий спектр научного и инженерного измерительного оборудования.
  • Визуализация и представление данных: Virtual Reality Toolbox — позволяет создавать интерактивные миры и визуализировать научную информацию с помощью технологий виртуальной реальности и языка VRML.
  • Средства разработки: MATLAB Builder for COM, MATLAB Builder for Excel, MATLAB Builder for NET, MATLAB Compiler, HDL Coder — инструменты, позволяющие создавать независимые приложения из среды MATLAB.
  • Взаимодействие с внешними программными продуктами: MATLAB Report Generator, Excel Link, Database Toolbox, MATLAB Web Server, Link for ModelSim — наборы функций, позволяющие сохранять данные различных видов таким образом, чтобы другие программы могли с ними работать.
  • Базы данных: Database Toolbox — инструменты работы с базами данных.
  • Научные и математические пакеты: Bioinformatics Toolbox, Curve Fitting Toolbox, Fixed-Point Toolbox, Optimization Toolbox, Global Optimization Toolbox,Partial Differential Equation Toolbox, Statistics And Machine Learning Toolbox, RF Toolbox — наборы специализированных математических функций и объектов, позволяющие решать широкий спектр научных и инженерных задач, включая разработку генетических алгоритмов, решения задач в частных производных, целочисленные проблемы, оптимизацию систем и другие.
  • Нейронные сети: Neural Network Toolbox — инструменты для синтеза и анализа нейронных сетей.
  • Нечёткая логика: Fuzzy Logic Toolbox — инструменты для построения и анализа нечётких множеств.
  • Символьные вычисления: Symbolic Math Toolbox — инструменты для символьных вычислений с возможностью взаимодействия с символьным процессором программы Maple.
Читайте также:  Зарядное устройство для аккумуляторов ups

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

Интересные факты [ править | править код ]

  • Если в командной строке напечатать «why» (почему), MATLAB ответит на этот вопрос. Ответы выбираются из ограниченного множества ответов случайным образом всякий раз, когда вводится эта команда.
  • В MATLAB встроена программа виртуальной машины vrcar.

Альтернативные пакеты [ править | править код ]

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

Назначение системы Matlab

Система Matlab — это универсальное приложение для исследователей, которые занимаются разработкой нового оборудования, алгоритмов, программ.

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

Начиная с 7-ой версии Matlab, в ней появились средства для выполнения цветовых преобразований и, что особеннно ценно, работы с ICC-профилями.

Интерфейс Matlab

Итак, запускаем Matlab и видим в окне довольно типичную среду разработки. Справа находится область ввода комманд, слева область отображения рабочих переменных.

Наберите в области командного ввода:

В результате будет создана новая переменная a. Теперь ее можно использовать в выражениях:

В результате получаем новую переменную b, которая получит значение 30.

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

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

Уничтожить созданную переменную можно специальной командой:

Итак, переменные в Matlab:

  • Чувствительны к регистру в имени
  • Не требуют определения типа переменной (целая, вещественная, массив)
  • Для просмотра значения переменной достаточно набрать ее имя в командной строке (без точки с запятой в конце)
  • Для уничтожения переменной надо использовать команду clear

Получение справки в Matlab

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

Итак, специальная команда help вызывает справку в Matlab. Вызыванная без параметров она выдает оглавление пакетов функций, установленных в вашей системе.

Ответ системы будет выглядеть примерно так:

Если вы хотите узнать перечень функций конкретного пакета, скажем elfun, то нужно просто набрать:

Система выдаст полный сисок доступных элементарных функций. Чтобы просмотреть справку по назначению и синтаксису конкретной функции, скажем SIN нужно набрать:

И теперь из ответа мы знаем, что функция-синус принимает в качестве входного параметра матрицу (для Matlab число — это матрица размером 1х1) и в ответе для каждого элемента расчитывает значение синуса.

В заключение работы для удаления ненужных переменных и очистки экрана вызываем команды:

Читайте далее принципы работы с массивами в Matlab.

©2005-2012 Александр Миловский

Дата изменения: 27.03.06
Дата создания: 27.03.06

Оставьте ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *