5. Функции MATLAB. Матлаб функции
Функции matlab
Функции обработки звука
Общие функции для звука
Lin2mu Преобразование линейного звукового сигнала в сигнал по mu-закону
Mu2lin Преобразование звукового сигнала по mu-закону в линейный
Sound Преобразование вектора в звук
Soundsc Масштабирование данных и воспроизведение в виде звука
Звуковые функции, определенные как SPARCstation
Auread Чтение звукового файла NeXT/SUN (.au)
Auwrite Запись звукового файла NeXT/SUN (.au)
Звуковые Функции
Wavplay Воспроизведение записанного звука
wavread Чтение звукового файла (.wav)
wavrecord Запись звука с использованием звукового устройство ввода
wavwrite Запись звукового файла (.wav)
Функции ввода - вывода файла
Открытие файла и закрытие
fclose Закрытие одного или более открытых файлов
fopen Открытие файла, или получение информации об открытых файлах
Неотформатированный ввод - вывод
fread Чтение из файла данных в двоичном формате
fwrite Запись данных в двоичном формате в файл
Отформатированный ввод - вывод
fgetl Возврат следующей строки файла без признака конца
fgets Возврат следующей строки с признаком конца
fprintf Запись отформатированных данных в файл
fscanf Чтение отформатированных данных из файла
Позиционирование файла
feof Тест на наличие конца файла
ferror Запрос MATLAB об ошибках при вводе или выводе файла
frewind Перемотка открытого файла
fseek Установка индикатора положения файла
ftell Получение индикатора положения файла
Преобразование строк
sprintf Запись отформатированных данных в строку
sscanf Чтение строки при управлении форматом
Специализированный ввод - вывод файла
dlmread Чтение разграниченного ASCII файла в матрицу
dlmwrite Запись матрицы в разграниченный ASCII файл
hdf Интерфейс HDF
imfinfo Информация о графическом файле
imread Чтение изображения из графического файла
imwrite Запись изображения в графический файл
strread Чтение отформатированных данных из строку
textread Чтение отформатированных данных из текстового файла
wk1read Чтение матрицы из файла Lotus123 WK1
wk1write Запись матрицы в файл Lotus123 WK1
Функции MATLAB:
Математика
Элементарные матрицы и матричные преобразования
Элементарные матрицы и массивы
blkdiag Построение блочно-диагональной матрицы из входных аргументов
eye Построение единичной матрицы
linspace Генерация линейно распределенных векторов
logspace Генерация логарифмически распределенных векторов
numel Число элементов в матрице или массиве
ones Создание массива единиц
rand Создание однородно распределенных случайных чисел и массивов
randn Создание нормально распределенных случайных чисел и массивов
zeros Создание массива нолей
: (двоеточие) Регулярно распределенный вектор
Специальные переменные и константы
ans Переменная, хранящая результат последней операции
computer Идентифицирует компьютер, на котором выполняется MATLAB
eps Относительная точность с плавающей запятой
i Мнимая единица
Inf Бесконечность
inputname Ввести имя аргумента
j Мнимая единица
NaN Указание на нечисловой характер данных (Not-a-Number).
nargin, nargout Число аргументов функций
nargoutchk Число параметров вывода
pi Отношение длины окружности к ее диаметру,
realmax Самое большое положительное значение с плавающей запятой
realmin Самое малое положительное значение с плавающей запятой
studfiles.net
Основные элементы языка программирования 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
рица из 0 и1 (ложь илиистина). Таким образом можно с помощью одного оператораfind определить и записать сразу все индексы матрицы, удовлетворяющие некоторому условию. Если при этом вспомнить, что оператор циклаfor допускает формуfor k=KK, гдеKK - целый вектор, то удобно использовать их вместе. Например если вам необходимо выполнить<оператор> только для тех элементов матрицы, которые больше3, то удобно это сделать следующим образом:
for i=find(A>3) <оператор>
end;
В системе MATLAB существует большое количество функций, подготовленных разработчиками системы (см. п.E ). Большинство из них предоставлено в виде исходных текстов. Можно эти функции классифицировать по областям их использования (тригонометрические, спецфункции, функции линейной алгебры и т.д.), но здесь мы вкратце опишем действия функций по отношению к матричному характеру переменныхMATLAB.
5.1.Скалярные функции
Определенные функции MATLAB действуют только на скаляры, но когда аргументом их является матрица, то они действуют поэлементно. К таким функциям относятся
sin | asin | exp | abs | round |
cos | acos | log (натуральнй) | sqrt | floor |
tan | atan | rem (остаток) | sign | ceil |
5.2. Векторные функции
Существуют другие функции, аргументами которых являются вектора (строки или столбцы), но если эти функции действуют на матрицу размера mxn (m >= 2), то они действуют постолбцово, т.е. результатом действия являетсявектор-строка,каждый элемент которой является результатом действия этой функции на соответствующий столбец. Построчное действие такой функции (если необходимо) может быть достигнуто использованием операции транспонирования. Например,mean(A’). Некоторые из этих функций приведены далее:
max | sum | median | any |
min | prod | mean | all |
sort | std |
|
|
Например, максимальный элемент прямоугольной матрицы находится с помощью команды max(max(A)), а не с помощьюmax(A). Попробуйте сами выполнить эти операции.
5.3.Матричные функции
Наибольшую мощь системе MATLAB дают матричные функции. Наиболее употребительные приведены в следующей таблице:
eig | собственные значения и собственные вектора |
chol | факторизация Холецкого |
svd | сингулярная декомпозиция |
inv | обратная матрица |
lu | LU-факторизация |
qr | QR-факторизация |
hess | форма Хессенберга |
schur | декомпозиция Шура |
rref | приведение к треугольной форме методом Гаусса |
expm | матричная экспонента |
sqrtm | матричный корень квадратный |
poly | характеристический полином |
det | определитель |
size | размерность |
norm | норма вектора или матрицы |
cond | число обусловленности |
rank | ранг матрицы |
Функции MATLAB могут иметь один или несколько результатов. Например, функцияy = eig(A), или простоeig(A) генерируетвектор-столбец,содержащий собственные значения матрицыA, в то время как оператор[U,D] = eig(A) генерирует матрицуU, чьи столбцы являются собственными векторамиA, а диагональная матрицаD содержит на главной диагонали собственные значения этой матрицы. Попробуйте вычислить это сами.
studfiles.net