Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.doc
Скачиваний:
202
Добавлен:
13.11.2018
Размер:
1.36 Mб
Скачать

Программирования и отладки программ

MATLAB как язык программирования

script

Внешний файл (программа-сценарий), содержащий последовательность операторов 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 = 

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; для матриц - матри­ца, содержащая кумулянтные суммы по столбцам. См. cum­prod, 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.

Корреляция

corrcoef

коэффициенты корреляции

cov

ковариационная матрица

subspace

угол между подпространствами

Фильтрация и свертка

filter

одномерный цифровой фильтр

filter2

двухмерный цифровой фильтр

conv

свертка и умножение полиномов

conv2

двухмерная свертка

deconv

разложение и деление полиномов

Преобразования Фурье

fft

дискретное преобразование Фурье (ДПФ)

fft2

двухмерное ДПФ

ifft

обратное ДПФ

ifft2

двухмерное обратное ДПФ

abs

модуль спектра

angle

фазовый угол

unwrap

исключить скачки фазового угла через 3600

fftshift

центрирование спектра

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]