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

Введение

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 isa к степени B, если B скаляр. Для других значений B, вычисление включает собственные значения и собственные вектора.

mpower

'

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

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

ctranspose

Похожие темы