x = 2*pi;
A = [3 + 2i 7 – 8i];
tol = 3*eps;
Типы данных
Всего в MATLAB –е имеется 14 базовых типов (или классов) даных. Каждый из этих типов данных является формой массива. Этот массив может иметь минимальный размер 0х0 и мо-жет иметь произвольную размерность по любой координате. Двумерные варианты таких массивов называются матрицами.Все 14 базовых класса типов данных показаны на приве-денной ниже диаграмме. Дополнительно, тип данных, определенных пользователем, пока-занный ниже как user class (класс пользователя), является подмножеством данных типа структуры.
Тип данных char содержит символы данные в коде Unicode. Строка символов является про-сто массивом символов размера 1хn. array of characters. Вы можете использовать тип данных char для хранения массивов строк, при условии, что все строки массива имеют одинаковую длину (это является следствием того, что все массивы MATLAB-а должны быть прямоуголь-ными). Для хранения массива строк разной длины нужно использовать массив ячеек.
Числовые типы данных включают целые числа со знаком и без знака, числа в формате пла-вающей запятой одинарной и двойной точности, и разреженные массивы (sparse arrays) двойной точности.
Сказанное ниже сохраняется в силе для всех типов числовых данных в MATLAB-е:
- Все вычисления в MATLAB-е выполняются с двойной точностью.
- Целые числа и числа одинарной точности обеспечивают более эффективное использование памяти по сравнению с числами двойной точности.
- Все типы данных поддерживают базовые операции над массивами, такие как исполь-зование индексов и измерение размеров массива.
- Для выполнения математических операций над целыми числами или массивами с оди-нарной точностью представления, вы должны первратить их в массивы с двойной точ-ностью при помощи функции double.
Операторы
Операторы системы MATLAB делятся на три категории:
- Арифметические опреаторы, осуществляющие численные вычисления.
- Операции отношения, которые осуществляют численное сравнение операндов.
- Логические операторы, включающие AND (логическое И), OR (логическое ИЛИ), и NOT (логическое отрицание НЕ).
Арифметческие операторы
MATLAB обеспечивает следующие арифметические операторы
Операторы | Описание |
+ | Сложение |
- | Вычитание |
.* | Умножение |
./ | Правое деление |
.\ | Левое деление |
+ | Унарный плюс (изменение знака объекта) |
- | Унарный минус |
: | Оператор двоеточия |
.^ | Степень |
.’ | Транспонирование |
‘ | Комплексно-сопряженное транспонирование |
* | Матричное умнжение |
/ | Матричное правое деление |
\ | Матричное левое деление |
^ | Степень матрицы |
Арифметические операторы и массивы
За исключением некоторых матричных операторов, арифметические операторы MATLAB-а работают с соответствующими элементами массивов одинаковой размерности. Для векторов и прямоугольных массивов, оба операнда должны иметь одинаковый размер, или же один из них должен быть скаляром. Если один операнд является скаляром, а второй - нет, MATLAB применяет данный скаляр ко всем элементам второго операнда; данное свойство известно как скалярное расширение (scalar expansion).
Следующий пример иллюстрирует свойство скалярного расширения при вычислении произ-ведения скалярного опренда и матрицы
A = magic(3)
A =
8 1 6
3 5 7
4 9 2
Введем
3 * A
что дает
ans =
24 3 18
9 15 21
12 27 6
Операторы отношения
MATLAB обеспечивает следующие операторы отношения
Операторы | Описание |
< | Меньше чем |
<= | Меньше чем или равно |
> | Больше чем |
>= | Больше чем или равно |
== | Равно |
~= | Не равно |
Операторы отношения и массивы
Операторы отношения в MATLAB-е сравнивают соответствующие элементы двух массивов с одинаковыми размерностями. Эти операторы всегда действуют поэлементно. В приведен-ном ниже примере, результирующая матрица показывает, где элемент матрицы A равен со-ответствующему элементу матрицы B.
A = [2 7 6; 9 0 5; 3 0.5 6];
B = [8 7 0; 3 2 5; 4 –1 7];
A == B
ans =
0 1 0
0 0 1
0 0 0
Для векторов и прямоугольных массивов, оба операнда должны иметь одинаковый размер или один из них должен быть скаляром. В случае когда один операнд является скаляром, а второй – нет , MATLAB проверяет данный скаляр с каждым элементом другого операнда. Те положение, где заданное отношение является истинным, принимают значение 1. Положение, где отношение является ложным, принимают значение 0.
Операторы отношения и пустые массивы
Операторы отношения работают и с массивами, у которых какая-либо размерность равна ну-лю (что приводит к пустому массиву), если оба массива имеют одинаковый размер или же один из них является скаляром. Однако, выражения вида
A == [ ]
приводят к ошибке, если только массив А не имеет размеры 0х0 или 1х1. Для проверки явля-ется ли данный массив пустым, следует использовать специальную функцию isempty(A).
Логические операторы
MATLAB обеспечивает следующие логические операторы
Оператор | Описание |
& | AND (логическое И) |
| | OR (логическое ИЛИ) |
~ | NOT (логическое НЕ) |
Внимание ! В дополнение к этим логическим операторам, в директории ops имеются нес-колько функций, предназначенных для побитовых (поразрядных) логических операций.
Каждый логический оператор имеет специфичный набор правил, которые определяют резу-льтат логического выражения:
- Выражения использующие оператор И (&), истинны, если истинны оба операнда. При численных элементах, выражение является истинным, если оба операнда ненулевые. Следующий пример показывает операцию логического И для двух векторов
u = [1 0 2 3 0 5];
v = [5 6 1 0 0 7];
u & v
ans =
0 0 1 0 0 1
- Выражения, использующие оператор ИЛИ ( | ), являются истинными если один из операндов является истинным. Выражения с ИЛИ являются ложными только если ло-жными являются оба операнда. При численных элементах, выражение является лож-ным, елси только оба операнда равны нулю. Для приведенных выше векторов u и v имеем
u | v
ans =
1 1 1 1 0 1
- Выражения, использующие оператор ~ выполняют логическое отрицание. Это дает ложный результат, если операнд является истинным и истинный, если операнд явля-ется ложным. При численных элементах, любой ненулевой операнд становится нулев-ым (логическим нулем), а любой нулевой элемент становится равным (логической) единице. Рассмотри операцию логического отрицания вектора u
~u
ans =
0 1 0 0 1 0
Использованием логических операторов с массивами
Логические операторы MATLAB-а сравнивают соответствующие элементы массивов одина-ковой размернсти. Для векторов или прямоугольных массивов, оба операнда должны иметь одинаковый размер, или один из них должен быть скаляром. Если один из элементов являе-тся скаляром, а второй – нет, то здесь также имеет место описанное выше свойство скалярно-го расширения.
Логические функции
В дополнение к логическим операторам, MATLAB имеет ряд логических функций.
Функция | Описание | Примеры |
xor | Выполняет операцию исключающего ИЛИ над своими операндами. При числовых элементах, функция возвращает 1 если один из операндов ненулевой, а второй - нулевой | a = 1; b = 1; xor(a,b) ans = 0 |
all | Возвращает 1, если все элементы ее аргумента являются истинными или не равны нулю; в противном случае результат равен логическому нулю. Над матрицами функция all работает вдоль столбцов | A = [0 1 2; 3 5 0] A = 0 1 2 3 5 0 all(A) ans = 0 1 0 |
any | Возвращает единицу, если любой из аргументов является истинным или ненулевым; в против-ном случае вовращает 0. Как и all , any работает вдоль столбцов матриц. | v = [5 0 8]; any(v) ans = 1 |
Ряд других функций MATLAB-а выполняет логические операции. Например, функция isnan возвращает 1 для NaN; функция isinf возвращает 1 для Inf. Более подробный список можно найти в директории ops.