MATLAB® имеет два различных типов арифметических операций: операции над массивами и операции над матрицей. Можно использовать эти арифметические операции, чтобы выполнить числовые вычисления, например, добавляя два числа, возводя элементы массива к данной степени, или умножая две матрицы.
Операции над матрицей следуют правилам линейной алгебры. В отличие от этого, операции над массивами выполняют поэлементно операции и поддерживают многомерные массивы. Символ точки (.
) отличает операции над массивами от операций над матрицей. Однако, поскольку операции над матрицей и операции над массивами являются тем же самым для сложения и вычитания, символьные пары, .+
и .-
являются ненужными.
Операции над массивами выполняют поэлементно операции на соответствующих элементах векторов, матриц и многомерных массивов. Если операнды имеют тот же размер, то каждый элемент в первом операнде подходится в элементе в том же месте во втором операнде. Если операнды имеют совместимые размеры, то каждый входной параметр неявно расширен по мере необходимости, чтобы совпадать с размером другого. Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".
Как простой пример, можно добавить два вектора с тем же размером.
A = [1 1 1]
A = 1 1 1
B = [1 2 3]
B = 1 2 3
A+B
ans = 2 3 4
Если один операнд является скаляром, и другой не, то MATLAB неявно расширяет скаляр, чтобы быть одного размера как другой операнд. Например, можно вычислить поэлементный продукт скаляра и матрицы.
A = [1 2 3; 1 2 3]
A = 1 2 3 1 2 3
3.*A
ans = 3 6 9 3 6 9
Неявное расширение также работает, если вы вычитаете 1 3 вектор от 3 3 матрица, потому что эти два размера совместимы. Когда вы выполняете вычитание, вектор неявно расширен, чтобы стать 3 3 матрица.
A = [1 1 1; 2 2 2; 3 3 3]
A = 1 1 1 2 2 2 3 3 3
m = [2 4 6]
m = 2 4 6
A - m
ans = -1 -3 -5 0 -2 -4 1 -1 -3
Вектор - строка и вектор - столбец имеют совместимые размеры. Если вы добавляете 1 3 вектор к 2 1 вектор, то каждый вектор неявно расширяется в 2 3 матрица, прежде чем MATLAB выполнит поэлементное сложение.
x = [1 2 3]
x = 1 2 3
y = [10; 15]
y = 10 15
x + y
ans = 11 12 13 16 17 18
Если размеры этих двух операндов несовместимы, то вы получаете ошибку.
A = [8 1 6; 3 5 7; 4 9 2]
A = 8 1 6 3 5 7 4 9 2
m = [2 4]
m = 2 4
A - m
Matrix dimensions must agree.
Следующая таблица предоставляет сводные данные арифметических операторов массивов в MATLAB. Для функционально-специализированной информации щелкните по ссылке к странице ссылки на функцию в последнем столбце.
Оператор | Цель | Описание | Страница с описанием |
---|---|---|---|
| Сложение |
| плюс |
| Унарный плюс |
| uplus |
| Вычитание |
| минус, |
| Унарный минус |
| uminus, |
| Поэлементное умножение |
| \times |
| Поэлементная степень |
| power |
./ | Деление правого массива |
| rdivide./ |
| Левое матричное деление |
| ldivide.\ |
| Массив транспонирует |
| перемещение |
Операции над матрицей следуют правилам линейной алгебры и не совместимы с многомерными массивами. Необходимый размер и форма входных параметров друг относительно друга зависят от операции. Для нескалярных входных параметров матричные операторы обычно вычисляют различные ответы, чем свои дубликаты оператора массивов.
Например, если вы используете матричный правильный оператор деления, /
, чтобы разделить две матрицы, матрицы должны иметь то же количество столбцов. Но если вы используете оператор умножения матриц, *
, чтобы умножить две матрицы, затем матрицы должны иметь общую внутреннюю размерность. Таким образом, количество столбцов в первом входном параметре должно быть равно количеству строк во втором входном параметре. Оператор умножения матриц вычисляет продукт двух матриц с формулой,
Чтобы видеть это, можно вычислить продукт двух матриц.
A = [1 3;2 4]
A = 1 3 2 4
B = [3 0;1 5]
B = 3 0 1 5
A*B
ans = 6 15 10 20
Предыдущее матричное произведение не равно следующему поэлементному продукту.
A.*B
ans = 3 0 2 20
Следующая таблица предоставляет сводные данные матричных арифметических операторов в MATLAB. Для функционально-специализированной информации щелкните по ссылке к странице ссылки на функцию в последнем столбце.
Оператор | Цель | Описание | Страница с описанием |
---|---|---|---|
| Умножение матриц |
| mtimes, * |
| Матрица покинула деление |
| mldivide, \ |
| Матричное правильное деление |
| mrdivide, / |
| Матричная степень |
| mpower |
| Комплексное сопряженное транспонирование |
| ctranspose,' |