Советы и лайфхаки

Язык программирования matlab – MATLAB — Википедия

Основные элементы языка программирования Matlab

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

— переменные;

— числа;

— операторы;

— функции.

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

num_students = 25

создает матрицу 1x1 с именем num_students и сохраняет значение 25 в ее единственном элементе.

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

A и a — не одна и та же переменная. Чтобы увидеть матрицу, связанную с переменной, просто введите название переменной.

Числа. Matlab использует принятую десятичную систему счисления, с необязатель­ной десятичной точкой и знаками плюс-минус для чисел. Научная система счисления использует букву e для определения множителя степени десяти. Мнимые числа используют i или j как суффикс. Некоторые примеры правиль­ных чисел приведены ниже:

3

-99

0.0001

9.6397238

1.60210е-20

6.02252е23

1i

-3.14159j

3e5i

Все числа для хранения используют формат long, это числа с плавающей точкой обладающие ограниченной точностью — приблизительно 16 значащих цифр и ограниченным диапазоном — приблизительно от 10-308 до 10308.

Операторы. Выражения используют обычные арифметические операции и правила стар­шинства (табл. 1).

Таблица 1

Арифметические операции пакета Matlab

Функции. Matlab предоставляет большое количество элементарных математических функций, таких как abs, sqrt, exp, sin. Вычисление квадратного корня или логарифма отрицательного числа не является ошибкой: в этом случае результатом является соответствующее комплексное число. Matlab также предоставляет и более сложные функции, включая Гамма функцию и функции Бесселя. Боль­шинство из этих функций имеют комплексные аргументы. Чтобы вывести список всех элементарных математических функций, наберите:

help elfun

Чтобы посмотреть список всех функций Matlab для анализа данных:

help datafun

Если вам нужно узнать о Statistics Toolbox, введите:

help stats

Список элементарных функций представлен в табл. 2.

Таблица 2

Элементарные функции пакета Matlab

Логарифм числа по основанию:.

Для вывода более сложных математических и матричных функций, наберите:

help specfun

help elmat

соответственно.

Некоторые функции, такие как sqrt и sin, — встроенные. Они являются частью Matlab, поэтому они очень эффективны, но их вычислительные детали трудно доступны. В то время как другие функции, такие как

gamma и sinh, реализо­ваны в m-файлах. Поэтому можно увидеть их код и, в случае необхо­димости, даже модифицировать его.

Несколько специальных функций предоставляют значения часто используемых констант:

pi

Число 3,14159265...

i или j

Мнимая единица

eps

Относительная точность числа с плавающей точкой

realmin

Наименьшее число с плавающей точкой

realmax

Наибольшее число с плавающей точкой

Inf

Бесконечность

NaN

Не число (неопределенность вида 0/0 или ∞/∞)

Бесконечность появляется при делении на ноль или при выполнении математического выражения, приводящего к переполнению, т. е. к превышению realmax. Не число (NaN) генерируется при вычислении выражений типа 0/0 или Inf/Inf, которые не имеют определенного математического значения.

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

eps = 1.e-6

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

clear eps

Операторы отношения служат для сравнения двух величин, векторов или матриц, все операторы отношения имеют две сравниваемые величины и записываются, как показано в табл. 3.

Таблица 3

studfiles.net

MATLAB - высокоуровневый язык технических расчетов

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

Доступ к данным
MATLAB позволяет вам получать доступ к данным из файлов, других приложений, баз данных, внешних устройств. Вы можете читать данные из файлов таких популярных форматов как Microsoft Excel, текстовых или двоичных файлов, изображений, аудио и видео файлов, научных форматов (netCDF и HDF). Функции ввода-вывода позволяют работать с файлами данных любых форматов.
Используя расширения MATLAB можно получать данные с различных устройств, таких как последовательный порт компьютера или звуковая карта, а также потоковые данные в реальном времени с измерительных устройств непосредственно в MATLAB для анализа и визуализации. Помимо того, вы можете управлять такими приборами, как осциллографы, анализаторы сигналов и генераторы колебаний специальной формы.

Анализ данных
MATLAB позволяет управлять, фильтровать и осуществлять предварительную обработку данных. Вы можете исследовать данные для нахождения трендов, проверки гипотез, построения описательных моделей. В MATLAB включены функции для фильтрации, сглаживания, свёртки и быстрого преобразования Фурье (FFT). Продукты-расширения включают возможности подбора кривых и поверхностей, многомерной статистики, спектрального анализа, анализа изображений, идентификации систем и другие инструменты анализа.

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

matlab.ru

MATLAB - это... Что такое MATLAB?

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

История

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:

 [J,I] = meshgrid(1:n);
 A = mod(I+J-(n+3)/2,n);
 B = mod(I+2*J-2,n);
 M = n*A + B + 1;

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

Пример кода, рисующего график sinc-функции :

 [X,Y] = meshgrid(-8:.5:8);
 R = sqrt(X.^2 + Y.^2);
 Z = sin(R)./R;
 Z(R==0) = 1;
 mesh(X,Y,Z);

Пример векторизации кода. Код

ww = repmat (w, [size(b,1) 1]);
A = b.*ww*b';

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

for i = 1:size(b,1)
    for j = i:size(b,1)
        A (i, j) = sum (b (i,:).*b (j,:).*w);
    end
    for j = 1:i
        A (i, j) = A (j, i);
    end
end

который делает то же самое.

Применение

Математика и вычисления

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

  • Разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.
  • Целочисленная арифметика — выполнение операций целочисленной арифметики в среде MATLAB.

Разработка алгоритмов

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

Визуализация данных

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

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

Независимые приложения

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

Внешние интерфейсы

Пакет 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).

COM-порт

Интерфейс для последовательного порта пакета 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 поставляет наборы инструментов, которые используются во многих областях, включая следующие:

  • Цифровая обработка сигналов, изображений и данных: DSP Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communication Toolbox, Filter Design Toolbox — наборы функций, позволяющих решать широкий спектр задач обработки сигналов, изображений, проектирования цифровых фильтров и систем связи.
  • Системы управления: Control Systems Toolbox, µ-Analysis and Synthesis Toolbox, Robust Control Toolbox, System Identification Toolbox, LMI Control Toolbox, Model Predictive Control Toolbox, Model-Based Calibration Toolbox — наборы функций, облегчающих анализ и синтез динамических систем, проектирование, моделирование и идентификацию систем управления, включая современные алгоритмы управления, такие как робастное управление, H∞-управление, ЛМН-синтез, µ-синтез и другие.
  • Финансовый анализ: GARCH Toolbox, Fixed-Income Toolbox, Financial Time Series Toolbox, Financial Derivatives Toolbox, Financial Toolbox, Datafeed Toolbox — наборы функций, позволяющие быстро и эффективно собирать, обрабатывать и передавать различную финансовую информацию.
  • Анализ и синтез географических карт, включая трёхмерные: Mapping Toolbox.
  • Сбор и анализ экспериментальных данных: Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox, Link for Code Composer Studio — наборы функций, позволяющих сохранять и обрабатывать данные, полученные в ходе экспериментов, в том числе в реальном времени. Поддерживается широкий спектр научного и инженерного измерительного оборудования.
  • Визуализация и представление данных: Virtual Reality Toolbox — позволяет создавать интерактивные миры и визуализировать научную информацию с помощью технологий виртуальной реальности и языка VRML.
  • Средства разработки: MATLAB Builder for COM, MATLAB Builder for Excel, MATLAB Builder for NET, MATLAB Compiler, Filter Design 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, Fuzzy Logic Toolbox, Genetic Algorithm and Direct Search Toolbox, OPC Toolbox, Optimization Toolbox, Partial Differential Equation Toolbox, Spline Toolbox, Statistic Toolbox, RF Toolbox — наборы специализированных математических функций, позволяющие решать широкий спектр научных и инженерных задач, включая разработку генетических алгоритмов, решения задач в частных производных, целочисленные проблемы, оптимизацию систем и другие.
  • Нейронные сети: Neural Network Toolbox — инструменты для синтеза и анализ нейронных сетей.
  • Нечёткая логика: Fuzzy Logic Toolbox — инструменты для построения и анализа нечётких множеств.
  • Символьные вычисления: Symbolic Math Toolbox — инструменты для символьных вычислений с возможностью взаимодействия с символьным процессором программы Maple.

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

Интересные факты

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

Альтернативные пакеты

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

Совместимые с MATLAB на уровне языка программирования

Близкие по функциональности

  • R, S и SPlus.
  • APL и его потомки: например J
  • Python, при использовании пакета программ Python(x,y), а также с такими библиотеками как NumPy, SciPy и matplotlib реализует сходные возможности.
  • IDL (англ. Interactive Data Language, интерактивный язык описания данных), когда-то был коммерческим конкурентом MATLAB, сейчас остаётся серьёзным конкурентом во многих прикладных областях, хотя его доля на рынке программных продуктов для численного анализа резко упала.
  • Fortress, язык программирования, созданный Sun Microsystems, является наследником Фортрана, но с ним не совместим.
  • При необходимости разработки больших проектов для численного анализа возможно использование языков программирования общего назначения, поддерживающих статическую типизацию и модульную структуру. Примерами могут служить Modula-3, Haskell, Ада, Java. При этом рекомендуется использовать известные в научно-инженерной среде специализированные библиотеки (см. ссылки).

См. также

Примечания

Ссылки

Литература

  • Дьяконов В. П. Справочник по применению системы PC MATLAB. — М.: «Физматлит», 1993. — С. 112. — ISBN 5-02-015101-7
  • Дьяконов В. П. Компьютерная математика. Теория и практика. — СПб: «Питер», 1999,2001. — С. 1296. — ISBN 5-89251-065-4
  • Дьяконов В. П. MATLAB 5 - система символьной математики. — М.: «Нолидж», 1999. — С. 640. — ISBN 5-89251-069-7
  • Дьяконов В. П., Абраменкова И. В. MATLAB. Обработка сигналов и изображений. Специальный справочник. — СПб.: «Питер», 2002. — С. 608. — ISBN 5-318-00667-608
  • Дьяконов В. П., Круглов В. В. MATLAB. Анализ, идентификация и моделирование систем. Специальный справочник. — СПб.: «Питер», 2002. — С. 448. — ISBN 5-318-00359-1
  • Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Основы применения.Полное руководство пользователя. — Москва.: «СОЛОН-Пресс», 2002. — С. 768. — ISBN 5-98003-007-7
  • Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и моделировании. Основы применения.Полное руководство пользователя. — Москва.: «СОЛОН-Пресс», 2003. — С. 576. — ISBN 5-93455-177-9
  • Дьяконов В. П. MATLAB 6.0/6.1/6.5/6.5+SP1 + Simulink 4/5. Обработка сигналов и изображений. Полное руководство пользователя. — Москва.: «СОЛОН-Пресс», 2005. — С. 592. — ISBN 5-93003-158-8
  • Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6. Основы применения.Библиотека профессионала. — Москва.: «СОЛОН-Пресс», 2005. — С. 800. — ISBN 5-98003-181-2
  • Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6 в математике и моделировании. Библиотека профессионала. — Москва.: «СОЛОН-Пресс», 2005. — С. 576. — ISBN 5-98003-209-6
  • Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6. Обработка сигналов и проектирование фильтров. Библиотека профессионала. — Москва.: «СОЛОН-Пресс», 2005. — С. 576. — ISBN 5-98003-206-1
  • Дьяконов В. П. MATLAB 6.5/7.0/7 SP1 + Simulink 5/6. Работа с изображениями и видеопотоками. Библиотека профессионала. — Москва.: «СОЛОН-Пресс», 2005. — С. 400. — ISBN 5-98003-205-3
  • Дьяконов В. П. MATLAB 6.5/7.0/7 SP1/7 SP2 + Simulink 5/6. Инструменты искусственного интеллекта и биоинформатики. Библиотека профессионала. — Москва.: «СОЛОН-Пресс», 2005. — С. 456. — ISBN 5-98003-255-X
  • Дьяконов В. П. MATLAB R2006/2007/2008 + Simulink 5/6/7. Основы применения. Изд-е 2-е, переработанное и дополненное. Библиотека профессионала. — Москва.: «СОЛОН-Пресс», 2008. — С. 800. — ISBN 978-5-91359-042-8
  • Дьяконов В. П. MATLAB 7.*/R2006/2007. Самоучитель. — Москва.: «ДМК-Пресс», 2008. — С. 768. — ISBN 978-5-94074-424-5
  • Дьяконов В. П. SIMULINK 5/6/7. Самоучитель. — Москва.: «ДМК-Пресс», 2008. — С. 784. — ISBN 978-5-94074-423-8
  • Дьяконов В. П. MATLAB и SIMULINK для радиоинженеров. — Москва.: «ДМК-Пресс», 2011. — С. 976. — ISBN 978-5-94074-492-4
  • Дьяконов В. П. Вейвлеты. От теории к практике. Полное руководство пользователя. Изд-е 2-е переработанное и дополненное. — Москва.: «СОЛОН-Пресс», 2004. — С. 400. — ISBN 5-98003-171-5
  • Чарльз Генри Эдвардс , Дэвид Э. Пенни. Дифференциальные уравнения и проблема собственных значений: моделирование и вычисление с помощью Mathematica, Maple и MATLAB = Differential Equations and Boundary Value Problems: Computing and Modeling. — 3-е изд. — М.: «Вильямс», 2007. — ISBN 978-5-8459-1166-7
  • Алексеев Е.Р., Чеснокова О.В. MATLAB 7. Самоучитель. — Пресс, 2005. — С. 464.
  • Курбатова Екатерина Анатольевна. MATLAB 7. Самоучитель. — М.: «Диалектика», 2005. — С. 256. — ISBN 5-8459-0904-X
  • Джон Г. Мэтьюз, Куртис Д. Финк. Численные методы. Использование MATLAB = Numerical Methods: Using MATLAB. — 3-е изд. — М.: «Вильямс», 2001. — С. 720. — ISBN 0-13-270042-5

dic.academic.ru

MATLAB: инструмент будущего или дорогая игрушка | GeekBrains

И кому это нужно.

Несмотря на достаточно высокую популярность языка MATLAB, большинство разработчиков с трудом представляет, как его синтаксис, так и возможности. Всё дело в том, что язык напрямую связан с популярным программным продуктом, стоимость которого может достигать потрясающих воображение значений. Итак, главный вопрос: так ли хорош непосредственно язык Matlab? И может ли он быть полезен именно вам.

Использование

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

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

Что касается цены, то в верхней границы почти нет, а вот нижняя находится в район 99$. Чтобы урвать столь мощный продукт за относительно небольшие деньги, вам необходимо быть студентом ВУЗа. И конечно же вы получите довольно ограниченный продукт.

Особенности языка

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

Недостатки:

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

  • Узконаправленный. Нет никакой больше программной платформы, где бы MATLAB был полезен.

  • Дороговизна ПО. Если вы не студент - либо готовьтесь опустошить карманы или перейти границу закона. И даже если студент - цена приличная.

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

Достоинства:

  • Язык легок для изучения, обладает простым и понятным синтаксисом.

  • Огромные возможности. Но это скорее преимущество всего продукта в целом.

  • Частые обновления, как правило заметные  положительные преобразования происходят не реже пары раз в год.

  • Программная среда позволяет преобразовывать его в “быстрый” код на С, С++.

Целевая аудитория

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

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

Литература

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

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

MATLAB for Beginners: A Gentle Approach, Питер Каттан - книга, рассчитанная на новичков не только в работе с MATLAB, но и с принципами обработки данных.

Matlab for Newbies: The bare essentials, Сидарта Верма - ещё одна книга рассчитанная на новичков, описывающая лишь среду программирования и основные команды языка.

MATLAB. Полный самоучитель, Дьяконов В.П. - одна из базовых университетских книг на русском языке.

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

А у вас есть опыт работы с MATLAB? И какой?

Для тех, кто хочет стать программистом - бесплатный онлайн-интенсив "Основы программирования для чайников".

geekbrains.ru

Основы программирования MatLab - CodeTown.ru

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

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

Переменные в MATLAB:

Существует несколько типов переменных, вот самые основные из них:

  • logical (true – 1, false – 0)
  • char – символьная строка
  • numeric – массивы чисел с плавающей запятой
  • int: int8 (массив 8-разрядных целых чисел со знаком, 1 байт на одно число), также есть int16, int32, int64
  • single – массив чисел с плавающей запятой одинарной точности (4 байта на одно число)
  • double – массив чисел с плавающей запятой двойной точности (16 знаков)
  • structure – структурированный массив полей для хранения данных с именами

Имя переменной:
длина — до 63 символов;
не должно совпадать с именами функций и процедур;
должно начинаться с буквы;
может содержать буквы, цифры, знак подчёркивания;
различаются большие и маленькие буквы.

Задать переменную очень легко:

a=4

Еще например:

>> a=2;b=4;a+b
ans =
     6

Как видите, Matlab сам выводит результат операции с 2 переменными.

Массивы:

Начнем с задания одномерных массивов:

Задание в командной строке: x = [1,2,3,4] или x = [1 2 3 4]
Задание отдельных элементов: х(3) = 3
Длину массива можно найти командой: length (x)

Переходим к двумерным массивам:

Задание в командной строке: x = [1,2,3,4;5,6,7,8]

ans =
     1 2 3 4
     5 6 7 8

Задание отдельных элементов: х(2,3) = 7
Обращение к отдельной р-ой строке массива: у = [р,:]
Обращение к к-ому столбцу массива: у = [:,к]
Команда В=А(:,:) обращается ко всем элементам матрицы, т.е. создаёт копию матрицы А.

Также следует знать о стандартных матрицах:

  • zeros(n,m) — матрица из нулей размера nxm
  • ones(n,m) – матрица из единиц размера nxm
  • rand(n,m) – матрица случайных чисел размера nxm
  • eye(n,m) – матрица из единиц на главной диагонали размера nxm

Операторы:

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

  • Арифметические операторы (арифметические выражения, вычисления)
  • Операторы отношения (сравнение аргументов)
  • Логические операторы (логические выражения)

Уровни приоритета арифметических операторов:

  1. Поэлементное транспонирование (.’ ), поэлементное возведение в степень (.*), сопряжение матрицы (‘), возведение матрицы в степень(^)
  2. Унарный плюс(+) и унарный минус (-)
  3. Поэлементное умножение массивов(.*), правое деление массивов (./) и левое (.\), умножение матриц (*), решение систем линейных уравнений операции (/) и (\)
  4. Сложение (+) и вычитание массивов (-)
  5. Оператор (:)

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

Операторы отношения:

  • меньше - функция lt()
  • меньше или равно - функция le()
  • > - больше - функция gt()
  • >= - больше или равно - функция ge()
  • == - равно - функция eg()
  • ~= - не равно - функция ne()

Их приоритет ниже арифметических, но выше логических операторов.

Логические операторы:

  • & - массив: 1- для каждого местоположения, в котором оба элемента имеют значение true (отличны от нуля) и 0 – для всех остальных элементов; функция and()
  • | - массив: 1- для каждого местоположения, в котором хотя бы один элемент имеет значение true (отличен от нуля) и 0 – для всех остальных элементов; функция or()
  • ~ - логическое отрицание для каждого элемента входного массива, А; функция not()
  • xor - массив: 1- для каждого местоположения, в котором только один элемент имеет значение true (отличен от нуля) и 0 – для всех остальных элементов
A = [0 1 1 0 1];  B = [1 1 0 0 1];

A&B = 01001
A|B = 11101
~A = 10010
xor(A,B)=10100

Простые примеры:

Задание матрицы 3 на 4 рандомными числами:

>> rand(3,4) 
ans =
    0.8147    0.9134    0.2785    0.9649
    0.9058    0.6324    0.5469    0.1576
    0.1270    0.0975    0.9575    0.9706

Далее определим детерминант следующей матрицы:

>> x = [1,2,3,4;5,6,7,8;10,11,12,13;14,15,16,17]
x =
     1     2     3     4
     5     6     7     8
    10    11    12    13
    14    15    16    17
>> det(x)
ans =
     0

Идем дальше:
Приведем пример перемножения матриц, напомню, что матрицы можно перемножать только в том случае, если число столбцов 1 матрицы совпадает с числом строк 2 матрицы.

>> x = [1,2,4;5,6,7]
X1 =
     1     2     4
     5     6     7
>> x = [1,2;4,5;6,7]
X2 =
     1     2
     4     5
     6     7
>> x1*x2
ans =
    11    14    18
    29    38    51
    41    54    73

На этом мы сегодня закончим. В следующих статьях мы будем уже подробно разбираться со всеми возможностями MATLAB. И поверьте, возможности эти очень большие.
Если у вас остались вопросы, то задавайте их в комментариях.

Поделиться ссылкой:

Похожее

codetown.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о