Введение

Числовая вычислительная среда и язык программирования

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

MATLAB (сокращение от "MATrix LABoratory") — это проприетарный многопарадигматический язык программирования и среда численных вычислений, разработанная компанией MathWorks. MATLAB позволяет выполнять манипуляции с матрицами, строить графики функций и данных, реализовывать алгоритмы, создавать пользовательские интерфейсы и взаимодействовать с программами, написанными на других языках. Хотя MATLAB предназначен прежде всего для численных вычислений, дополнительный набор инструментов использует символьный движок MuPAD, обеспечивая доступ к возможностям символьных вычислений. Дополнительный пакет Simulink добавляет графическое многодоменное моделирование и проектирование на основе моделей для динамических и встраиваемых систем. По состоянию на 2020 год число пользователей MATLAB во всем мире превышает четыре миллиона. Они представляют различные области техники, науки и экономики. По состоянию на 2017 год более 5000 колледжей и университетов по всему миру используют MATLAB для поддержки учебного процесса и научных исследований.

Происхождение

MATLAB был изобретен математиком и программистом Клевом Молером. Идея MATLAB возникла на основе его докторской диссертации 1960-х годов. Первая ранняя версия MATLAB была завершена в конце 1970-х годов. Ранние версии MATLAB представляли собой простые матричные калькуляторы с 71 предустановленной функцией. В то время MATLAB распространялся бесплатно среди университетов. Молер оставлял копии в университетах, которые посещал, и программное обеспечение завоевало популярность на математических факультетах университетов. В 1980-х годах Клев Молер встретил Джона Н. Литтла. Они решили перепрограммировать MATLAB на языке C и вывести его на рынок для настольных компьютеров IBM, которые в то время заменяли мэйнфреймы, и был выпущен язык программирования MATLAB. К концу 1980-х годов университетам для использования студентами было продано несколько сотен копий MATLAB. Первый компилятор MATLAB был разработан Стивеном К. Джонсоном в 1990-х годах. Пользовательский интерфейс был переработан, а функциональность Simulink расширена. К 2016 году в MATLAB было внедрено несколько технических и пользовательских улучшений, включая блокнот MATLAB Live Editor и другие возможности.

Структуры

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

Функции

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

Функциональные ручки

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

MATLAB и другие языки

MATLAB может вызывать функции и подпрограммы, написанные на языках программирования C или Fortran. Для этого создается функция-оболочка, позволяющая передавать и возвращать данные типов MATLAB. Файлы MEX (MATLAB executables) – это динамически подключаемые объектные файлы, создаваемые при компиляции таких функций. С 2014 года активно расширяется двустороннее взаимодействие с Python. Библиотеки, написанные на Perl, Java, ActiveX или .NET, могут быть вызваны непосредственно из MATLAB, и многие библиотеки MATLAB (например, поддержка XML или SQL) реализованы как оболочки вокруг библиотек Java или ActiveX. Вызов MATLAB из Java более сложен, но может быть осуществлен с помощью отдельного инструмента MATLAB, продаваемого MathWorks, или с использованием неофициального механизма JMI (Java to MATLAB Interface), который не следует путать с не связанным Java Metadata Interface, также называемым JMI. Официальный API MATLAB для Java был добавлен в 2016 году. В качестве альтернативы Symbolic Math Toolbox на основе MuPAD, предлагаемой MathWorks, MATLAB можно подключить к Maple или Mathematica. Также существуют библиотеки для импорта и экспорта MathML.

Отношения к санкциям США

В 2020 году компания MATLAB прекратила предоставление услуг двум китайским университетам из-за санкций, введенных США. Представители университетов заявили, что ответят на это увеличением использования альтернатив с открытым исходным кодом и разработкой собственных отечественных решений.