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

Введение

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.

плюс

+

Унарный плюс

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

uplus

-

Вычитание

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

минус,

-

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

-A инвертирует элементы A.

uminus,

.*

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

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

\times

.^

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

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

power
./

Деление правого массива

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

rdivide./

.\

Левое матричное деление

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

ldivide.\

.'

Массив транспонирует

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

перемещение

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

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

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

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,'

Похожие темы

Была ли эта тема полезной?