Массив от Матричных операций

Введение

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. Для получения информации о функции щелкните ссылку на функцию, страницу с описанием в последнем столбце.

Оператор

Цель

Описание

Страница с описанием

+

Сложение

A+B добавляет A и B.

plus

+

Унарный плюс

+A возвращает A.

uplus

-

Вычитание

A-B вычитает B от A

minus

-

Унарный минус

-A отрицает элементы A.

uminus

.*

Поэлементное умножение

A.*B - поэлементный продукт A и B.

times

.^

Поэлементная степень

A.^B - матрица с элементами A(i,j) на B(i,j) степень.

power
./

Правый массив

A./B - матрица с элементами A(i,j)/B(i,j).

rdivide

.\

Левое деление массива

A.\B - матрица с элементами B(i,j)/A(i,j).

ldivide

.'

Транспонирование массива

A.' - транспонирование массива A. Для сложных матриц это не включает сопряжение.

transpose

Матричные операции

Матричные операции следуют правилам линейной алгебры и несовместимы с многомерными массивами. Необходимый размер и форма входов относительно друг друга зависят от операции. Для нескалярных входов матричные операторы обычно вычисляют другие ответы, чем их аналоги-операторы массива.

Для примера, если вы используете оператор матричного правого деления, /чтобы разделить две матрицы, матрицы должны иметь одинаковое число столбцов. Но если вы используете оператор матричного умножения, *чтобы умножить две матрицы, матрицы должны иметь общую внутреннюю размерность. То есть количество столбцов в первом входе должно быть равно количеству строк во втором входе. Оператор матричного умножения вычисляет продукт двух матриц с формулой,

C(i,j)=k=1nA(i,k)B(k,j).

Чтобы увидеть это, можно вычислить продукт двух матриц.

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. Для получения информации о функции щелкните ссылку на функцию, страницу с описанием в последнем столбце.

Оператор

Цель

Описание

Страница с описанием

*

Матричное умножение

C = A*B - линейный алгебраический продукт матриц A и B. Количество столбцов A должно равняться количеству строк B.

mtimes

\

Матричное левое деление

x = A\B является решением уравнения Ax = B. Матрицы A и B должно иметь одинаковое число строк.

mldivide

/

Матричное правое деление

x = B/A является решением уравнения xA = B. Матрицы A и B должно иметь одинаковое число столбцов. В терминах оператора левого деления B/A = (A'\B')'.

mrdivide

^

Матричная степень

A^B является A в степень B, если B является скаляром. Для других значений B, вычисление включает собственные значения и собственные векторы.

mpower

'

Комплексная сопряженная транспозиция

A' - линейная алгебраическая транспозиция A. Для сложных матриц это комплексная сопряженная транспозиция.

ctranspose

Похожие темы