И другие программы этой серии
Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов. Существует также возможность сохранять так называемые 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):
A(1:end) = B(end:-1:1);
График sinc-функции, нарисованный с помощью MATLAB
Пример кода, рисующего график sinc-функции :
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2);
Z(R~=0) = sin(R(R~=0))./R(R~=0);
Z(R==0) = 1;
mesh(X,Y,Z);
Пример векторизации кода. Код
ww = w (ones(nf,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 предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики, в частности:
Матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные значения и вектора, сингулярности, факторизация матриц и другие.