exponenta event banner

Операции с массивом и матрицей

Введение

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

Связанные темы