MATLAB — Операторы
Оператор — это символ, который указывает компилятору выполнять определенные математические или логические манипуляции. MATLAB предназначен для работы в первую очередь с целыми матрицами и массивами. Поэтому операторы в MATLAB работают как со скалярными, так и с нескалярными данными. MATLAB допускает следующие типы элементарных операций —
- Арифметические операторы
- Операторы отношения
- Логические операторы
- Побитовые операции
- Установить операции
Арифметические операторы
MATLAB допускает два разных типа арифметических операций —
- Матричные арифметические операции
- Арифметические операции с массивами
Матричные арифметические операции такие же, как и в линейной алгебре. Операции с массивами выполняются поэлементно, как на одномерном, так и на многомерном массиве.
Матричные операторы и операторы массива различаются символом точки (.). Однако, поскольку операции сложения и вычитания одинаковы для матриц и массивов, оператор одинаков для обоих случаев. В следующей таблице дано краткое описание операторов —
Показать примеры
<тд>+
Сложение или унарный плюс. A+B складывает значения, хранящиеся в переменных A и B. A и B должны иметь одинаковый размер, если только они не являются скалярными. Скаляр можно добавить к матрице любого размера.
<тд>-
Вычитание или унарный минус. A-B вычитает значение B из A. A и B должны иметь одинаковый размер, если только один из них не является скаляром. Скаляр можно вычесть из матрицы любого размера.
<тд>*
Умножение матриц. C =A*B — это линейное алгебраическое произведение матриц A и B. Точнее,
Для нескалярных A и B количество столбцов A должно быть равно количеству строк B. Скаляр может умножать матрицу любого размера.
<тд>.*
Умножение массива. A.*B — поэлементное произведение массивов A и B. A и B должны иметь одинаковый размер, если только один из них не является скаляром.
<тд>/
Косая черта или матричное правое деление. B/A примерно такой же, как B*inv(A). Точнее, B/A =(A'\B')'.
<тд>./
Правое деление массива. A./B — матрица с элементами A(i,j)/B(i,j). A и B должны иметь одинаковый размер, если только один из них не является скаляром.
<тд>\
Обратная косая черта или матричное левое деление. Если A — квадратная матрица, A\B примерно такой же, как inv(A)*B, за исключением того, что он вычисляется другим способом. Если A — матрица размера n на n, а B — вектор-столбец с n компонентами или матрица с несколькими такими столбцами, то X =A\B — решение уравнения AX =B . Предупреждающее сообщение отображается, если A плохо масштабируется или почти единственное.
<тд>.\
Левое деление массива. A.\B — матрица с элементами B(i,j)/A(i,j). A и B должны иметь одинаковый размер, если только один из них не является скаляром.
<тд>^
Сила матрицы. X^p — это X в степени p, если p — скаляр. Если p является целым числом, мощность вычисляется повторным возведением в квадрат. Если целое число отрицательное, сначала инвертируется X. Для других значений p расчет включает собственные значения и собственные векторы, так что если [V,D] =eig(X), то X^p =V*D.^p/V.
<тд>.^
Мощность массива. A.^B — матрица с элементами A(i,j) в степени B(i,j). A и B должны иметь одинаковый размер, если только один из них не является скаляром.
<тд>'
Транспонирование матрицы. A' — это линейная алгебраическая транспонирование матрицы A. Для комплексных матриц это комплексно-сопряженное транспонирование.
<тд>.'
Транспонирование массива. А.' представляет собой массив, транспонированный A. Для комплексных матриц это не требует сопряжения.
Сер.№ | Оператор и описание |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 |
Операторы отношения
Реляционные операторы также могут работать как со скалярными, так и с нескалярными данными. Реляционные операторы для массивов выполняют поэлементное сравнение между двумя массивами и возвращают логический массив того же размера, с элементами, установленными на логическую 1 (истина), где отношение истинно, и элементами, установленными на логический 0 (ложь), где оно нет.
В следующей таблице показаны реляционные операторы, доступные в MATLAB —
Показать примеры
<тд><
Меньше чем
<тд><=
Меньше или равно
<тд>>
Больше, чем
<тд>>=
Больше или равно
<тд>==
Равно
<тд>~=
Не равно
Сер.№ | Оператор и описание |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 |
Логические операторы
MATLAB предлагает два типа логических операторов и функций —
-
Поэлементно — эти операторы работают с соответствующими элементами логических массивов.
-
Короткое замыкание — эти операторы работают со скалярными и логическими выражениями.
Поэлементные логические операторы работают поэлементно с логическими массивами. Символы &, | и ~ являются логическими операторами массива И, ИЛИ и НЕ.
Логические операторы короткого замыкания позволяют замыкать логические операции. Символы &&и || являются логическими операторами короткого замыкания И и ИЛИ.
Показать примеры
Побитовые операции
Побитовые операторы работают с битами и выполняют побитовые операции. Таблицы истинности для &, | и ^ следующие:
<тд>0 <тд>0 <тд>0 <тд>0 <тд>1 <тд>0 <тд>1 <тд>1 <тд>1 <тд>1 <тд>1 <тд>0 <тд>0 <тд>0 <тд>1 <тд>1p | q | p &q | p | д | p ^ q |
---|---|---|---|---|
0 | ||||
0 | ||||
1 | ||||
1 |
Предположим, если А =60; и В =13; Теперь в бинарном формате они будут такими —
А =0011 1100
Б =0000 1101
------------------
А&В =0000 1100
А|В =0011 1101
А^В =0011 0001
~А =1100 0011
MATLAB предоставляет различные функции для побитовых операций, таких как "побитовое И", "побитовое или" и "побитовое не", операция сдвига и т. д.
В следующей таблице показаны часто используемые побитовые операции —
Показать примеры
Функция | Цель |
---|---|
бит и (а, б) | Побитовое И целых чисел a и б |
bitcmp(a) | Побитовое дополнение a |
bitget(a,pos) | Получить бит в указанной позиции pos , в массиве целых чисел a |
битор(а, б) | Побитовое ИЛИ целых чисел a и б |
bitset(a, pos) | Установить бит в определенном месте pos а |
битовый сдвиг(a, k) | Возвращает a сдвинут влево на k бит, что эквивалентно умножению на 2 k . Отрицательные значения k соответствуют сдвигу битов вправо или делению на 2 |k| и округление до ближайшего целого числа в сторону отрицательной бесконечности. Любые биты переполнения усекаются. |
bitxor(a, b) | Побитовое исключающее ИЛИ целых чисел a и б |
байты подкачки | Поменять порядок байтов |
Установить операции
MATLAB предоставляет различные функции для операций над множествами, таких как объединение, пересечение и проверка принадлежности к множеству и т. д.
В следующей таблице показаны некоторые часто используемые операции над множествами —
Показать примеры
<тд>пересечение(A,B)
Установить пересечение двух массивов; возвращает значения, общие для A и B. Возвращаемые значения отсортированы по порядку.
<тд>пересекать(A,B,'строки')
Обрабатывает каждую строку A и каждую строку B как отдельные объекты и возвращает строки, общие для A и B. Строки возвращаемой матрицы отсортированы.
<тд>является членом(A,B)
Возвращает массив того же размера, что и A, содержащий 1 (истина), где элементы A находятся в B. В другом месте он возвращает 0 (ложь).
<тд>является членом(A,B,'строки')
Обрабатывает каждую строку A и каждую строку B как отдельные объекты и возвращает вектор, содержащий 1 (истина), где строки матрицы A также являются строками матрицы B. В другом месте он возвращает 0 (ложь).
<тд>отсортировано(A)
Возвращает логическую 1 (истина), если элементы A отсортированы, и логический 0 (ложь) в противном случае. Входные данные A могут быть вектором или массивом строк размером N на 1 или 1 на N. A считается отсортированным, если A и выходные данные sort(A) равны.
<тд>отсортировано(A, 'строки')
Возвращает логическую 1 (истина), если строки двумерной матрицы A отсортированы, и логический 0 (ложь) в противном случае. Матрица A считается отсортированной, если A и выходные данные sortrows(A) равны.
<тд>установить разн.(A,B)
Устанавливает разницу двух массивов; возвращает значения в A, которых нет в B. Значения в возвращаемом массиве отсортированы.
<тд>setdiff(A,B,'строки')
Обрабатывает каждую строку A и каждую строку B как отдельные объекты и возвращает строки из A, которых нет в B. Строки возвращаемой матрицы отсортированы.
Опция rows не поддерживает массивы ячеек.
<тд>setxor
Устанавливает исключающее ИЛИ двух массивов
<тд>союз
Устанавливает объединение двух массивов
<тд>уникальный
Уникальные значения в массиве
Сер.№ | Функция и описание |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 |
MATLAB