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

Введение

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

Похожие темы