Внешний файл (программа-сценарий), содержащий последовательность операторов MATLAB. Обращение к такому файлу – путем набора его имени; script-файлы имеют расширение *.m, и поэтому их называют также m-файлами (M-file). См. также function, type, echo
function
Внешняя функция. Ее имя должно совпадать с именем соответствующего m-файла, содержащего тело этой функции (операторы и обращения к существующим функциям) и иметь расширение *.m. В первой строке текста m-файла должно быть синтаксическое определение новой функции. Например файл stat.m:
function [mean,stdev] = stat(x)
n = length(x);
mean = sum(x) / n;
stdev = sqrt(sum((x - mean).^2)/n);
определяет новую функцию stat, вычисляющую математическое ожидание и дисперсию вектора. Все переменные внутри тела функции являются локальными. См. echo, global, script
eval
Выполнить оператор MATLAB, записанный как символьное выражение: eval(s). Оператор eval(s1,s2) сначала выполняет s1 и возвращает результат; если при этом возникла ошибка вычислений, то выполняется s2, что дает возможность отлаживать программу при альтернативных вариантах вызываемой функции. [X,Y,Z,...]=eval(s) – возвращает выходные параметры выражения, заданного строкой s. Входные строки для функции eval часто создают, объединяя строки и переменные внутри квадратных скобок. Например, программа генерирования «магических» матриц (M1...M12):
for n = 1:12
eval(['M' num2str(n) ' = magic(n)'])
end
См. lasterr, feval
feval
Выполнить функцию через ее имя, заданное как строковая переменная: если F - строка-имя функции (определенной как m-файл), то оператор feval(F,x1,...,xn) возвращает значения этой функции при заданных значениях аргументов). Например, пусть F = 'foo', тогда feval(F,9.64) равносильно foo(9.64). feval обычно используют в функциях, которые предусматривают обращение к каким-либо другим функциям
global
Определение глобальных переменных, например global X Y Z определяет X, Y и Z как глобальные переменные (в перечислении переменных запятые не ставятся !). Функция MATLAB, определяемая через m-файл, обычно содержит собственные (локальные) переменные, недоступные для других функций, рабочего окна и m-файлов, не являющихся функциями. В то же время глобальные переменные доступны в пределах всего рабочего пространства. См. isglobal, clear, who
nargchk
Возвращает число входных аргументов
lasterr
Сообщение о последней ошибке, диагностируемой системой MATLAB, в виде строковой переменной. lasterr('') обнуляет функцию lasterr, в результате чего она возвращает пустую матрицу до возникновения очередной ошибки. Lasterr обычно используют в сочетании с двухаргументной формой функции eval: например, в конструкции eval('try','catch') аргумент 'catch' может анализировать строку lasterr для выяснения причины ошибки и соответствующей коррекции. См. eval, error
Управление потоком данных
if
Условный оператор; его формат: IF переменная, операторы, END. Операторы выполняются, если вещественная часть переменной содержит только ненулевые элементы (0 - логическое false, т.е. ложь). Переменная обычно определяется через операции отношения (rop): expr rop expr, где expr - выражение; rop может быть ==, <, >, <=, >=, ~=.
else
Иначе(используется с if)
elseif
Иначе если (используется с if)
end
Конец действия операторов for, while и if
for
Счетчик цикла
while
Пока... (цикл)
break
Выход из цикла
return
Возврат к вызываемой функции
error
Вывод сообщения и завершение выполнения функции
Организация диалога
input
Приглашение для ввода данных
keyboard
Активизация клавиатуры как script-файла
menu
Вызов пользовательского меню
pause
Пауза (ожидание команды пользователя)
uimenu
Создать пользовательское меню
uicontrol
Создание пользовательского управляющего интерфейса
dbquit
Выйти из режима отладки
matlab\elmat - простейшие матрицы и матричные операции
Простейшие матрицы
zeros(m,n)
Создание матрицы с нулевыми элементами
ones(m,n)
Создание матрицы с единичными элементами
eye(m,n)
Создание единичной матрицы (с единичными элементами на главной диагонали)
rand(m,n)
Создание матрицы со случайными элементами (равномерно распределенными в диапазоне 0...1.0)
randn(m,n)
Создание матрицы с нормальными случайными элементами
linspace(x1,x2,n)
Вектор-строка с n элементами в интервале от x1 до x2
logspace(x1,x2,n)
Вектор-строка с n элементами в интервале 10^x1 ... 10^x2
meshgrid
Генерирование массивов X и Y для поверхностей z=f(x,y)
Специальные (системные) переменные и константы
ans
Текущий результат
eps
Относительная точность вычислений с плавающей запятой
realmax
Максимальное число с плавающей запятой (1.7977e+308)
realmin
Минимальное положительное число с плавающей запятой (2.2251e-308)
pi = p
3.1415926535897....
i, j
Мнимая единица
inf (Inf)
Машинная бесконечность
NaN
Неопределенность (Not-a-Number=не число)
Текущее время и дата
clock
Текущее системное время
date
Дата
Матричные операции
diag
Формирование или исключение диагоналей
fliplr
Поворот матрицы влево или вправо
flipud
Поворот матрицы вверх или вниз
reshape
Изменение размера матрицы
rot90
Поворот матрицы на 90 градусов
tril
Создание нижней треугольной матрицы
triu
Создание верхней треугольной матрицы
matlab\elfun - элементарные математические функции
Тригонометрические, гиперболические
sin, sinh
Cинус, гиперболический синус
asin, asinh
Арксинус
cos, cosh
Косинус
acos, acosh
Арккосинус
tan, tanh
Тангенс
atan, atanh
Арктангенс
atan2
Арктангенс в четырех квадрантах плоскости
sec, sech
Секанс
asec, asech
Арксеканс
csc, csch
Косеканс
acsc, acsch
Арккосеканс
cot, coth
Котангенс
acot, acoth
Арккотангенс
Показательные
exp
Экспонента
log
Натуральный логарифм
log10
Десятичный логарифм
sqrt
Корень квадратный
Комплексные числа
abs
Модуль
angle
Аргумент (фазовый угол)
conj
Комплексно сопряженное число
imag
Мнимая часть
real
Действительная часть
Действия с числами
fix
Округление в сторону нуля
floor
Округление в сторону минус бесконечности
ceil
Округление в сторону плюс бесконечности
round
Округление до ближайшего целого числа
rem
Остаток от деления
sign
Функция знака
matlab\specfun - специальные математические функции
besselj
Функция Бесселя 1-го рода
bessely
Функция Бесселя 2-го рода
besseli
Модифицированная функция Бесселя 1-го рода
besselk
Модифицированная функция Бесселя 2-го рода
beta
Бета-функция
betainc
Неполная бета-функция
betaln
Логарифмическая бета-функция
ellipj
Эллиптические функции Якоби
ellipke
Полный эллиптический интеграл
erf
Функция ошибок
erfc
Дополнительная функция ошибок
erfcx
Нормированная дополнительная функция ошибок
erfinv
Обратная функция ошибок
gamma
Гамма-функция
gcd
Наибольший общий делитель
gammainc
Неполная гамма функция
lcm
Наименьшее общее кратное
gammaln
Логарифмическая гамма-функция
cart2sph
Преобразование прямоугольных координат в сферические
cart2pol
Преобразование прямоугольных координат в полярные
pol2cart
Преобразование полярных координат в прямоугольные
sph2cart
Преобразование сферических координат в прямоугольные
matlab\matfun - матричные функции - численная линейная алгебра
Матричный анализ
cond
Число обусловленности матрицы
norm
Норма матрицы или вектора
rcond
Оценка числа обусловленности матрицы
rank
Ранг матрицы
det
Определитель
trace
След матрицы
Линейные уравнения
\ и /
Решение линейных уравнений
chol
Разложение Холецкого
lu
LU-разложение
inv
Обратная матрица
qr
QR-разложение
lscov
Метод наименьших квадратов в присутствии шумов
Собственные и сингулярные значения
eig
Собственные значения и векторы
poly
Характеристический полином
rsf2csf
Преобразование действительной формы в комплексную диагональную
cdf2rdf
Преобразование комплексной диагональной формы в действительную блочную диагональную
balance
Масштабирование матрицы
svd
Сингулярное разложение матрицы
Матричные функции
expm
Матричная экспонента
expm1
Представление expm в виде m-файла
expm2
Матричная экспонента в виде ряда Тэйлора
expm3
Матричная экспонента через спектральное разложение
logm
Матричный логарифм
sqrtm
Извлечение квадратного корня из матрицы
funm
Произвольная функция от матрицы
matlab\datafun - анализ данных и преобразования Фурье
Основные операции
max
Максимальный элемент: для векторов MAX(X) - наибольший элемент Х. Для матриц MAX(X) - вектор, содержащий максимальные элементы столбцов. [Y,I] = MAX(X) сохраняет индексы максимальных значений в векторе I. В случае комплексных чисел находится максимальное значение модулей: MAX(ABS(X)). См. min, median, mean, sort.
min
Минимальный элемент: применение аналогично max
mean
Среднее значение элементов: для векторов MEAN(X) возвращает среднее значение элементов X. Для матриц MEAN(X) - вектор-строка, элементы которого равны средним значениям столбцов.
См. median, std, min, max
median
Медиана: для векторов median(X) возвращает медиану значений элементов X: например, median(1:10)=5.5. Для матриц median(X) - вектор-строка, содержащая медианные значения столбцов. См. mean, std, max, min.
std
Cредне-квадратическое (стандартное) отклонение: для векторов std(Х) возвращает с.к.о.; для матриц std(X) - вектор-строка, элементы которого равны с.к.о. столбцов. При вычислении с.к.о. используется деление суммы на n-1, где n - число элементов.
См. cov, mean, median.
sort
Cортировка элементов в порядке возрастания: sort(X) - сортировка столбцов X; если элементы Х - комплексные, происходит сортировка abs(X). [Y,I] = sort(X) возвращает матрицу индексов I. Если X - вектор, то Y = X(I). Если Х - матрица размером m x n, то for J = 1:n, Y(:,J) = X(I(:,J),J). См. min, max.
sum
Cумма элементов: для векторов sum(X) - сумма элементов Х. Для матриц sum(X) - вектор-строка, элементы которого равны сумме элементов столбцов. См. prod, cumprod, cumsum
prod
Произведение элементов: по применению аналогично sum
cumsum
Кумулянтная (накопительная) сумма элементов: для векторов cumsum(X) - кумулянтная сумма элементов X; для матриц - матрица, содержащая кумулянтные суммы по столбцам. См. cumprod, sum, prod.
cumprod
Кумулятное произведение элементов: по применению аналогично cumsum
trapz
Вычисление интеграла методом трапеций: Z = trapz(X,Y) вычисляет интеграл функции Y(X) методом трапеций; X и Y должны быть векторами одинаковой длины, либо X - вектор-столбец, а Y - матрица с таким же числом строк. Результат Z - скаляр или вектор-строка. Z = trapz(Y) вычисляет “трапецеидальный” интеграл Y при единичном шаге; если шаг отличен от единичного, необходимо умножить Z на фактическое значение шага. См. sum, cumsum.
Конечные разности
diff
Разностная функция и приближенное вычисление производной: diff может иметь как числовые, так и символьные аргументы. При числовом векторном аргументе diff вычисляет разности. В случае векторного Х diff(X)=[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]. В случае матрицы diff(X) - матрица столбцовых разностей [X(2:n,:) - X(1:n-1,:)]. diff(X,n) - разностная функция n-го порядка. При символьном (строчном) аргументе diff находит аналитическое выражение производных (если установлен пакет Maple Symbolic Toolbox).
Примеры:
h = .001; x = 0:h:pi;
diff(sin(x.^2))/h - приближенное значение 2*cos(x.^2).*x
diff((1:10).^2) = 3:2:19
См. gradient, del2, int, symvar.
gradient
Приближенное вычисление градиента:
[PX,PY] = gradient(Z,DX,DY) возвращает числовые значения частных производных матрицы Z в виде матриц PX = dZ/dx и PY = dZ/dy. DX и DY могут быть скалярными значениями шага в направлениях X и Y или векторами, задающими направления в явной форме. Запись [PX,PY] = gradient(Z) предполагает, что DX =DY = 1. Если Y - вектор, то gradient(Y) и gradient(Y,DX) возвращают численное значение одномерной производной dY/dX.
Пример:
[x,y] = meshgrid(-2:.2:2, -2:.2:2);
z = x .* exp(-x.^2 - y.^2);
[px,py] = gradient(z,.2,.2);
contour(z),hold on, quiver(px,py), hold off
См. diff, del2, quiver, contour.
del2
Дискретное 5-точечное преобразование Лапласа:
V = del2(U) - матрица того же размера, что U, элементы которой равны разности значения элемента U и среднего значения четырех соседних элементов. В “углах” и на “краях” учитываются два или три соседних элемента. См. gradient, diff.