8.3 Арифметические операторы ¶
Следующие арифметические операторы доступны и работают со скалярами и матрицами. Операторы и функции поэлементного действия ведут себя по правилу трансляции (см. Трансляция).
- x + y ¶
-
Сложение (всегда работает поэлементно). Если оба операнда — матрицы, число строк и столбцов должно совпадать, или они должны быть транслируемы в одну форму.
- x - y ¶
-
Вычитание (всегда работает поэлементно). Если оба операнда — матрицы, число строк и столбцов у обоих должно совпадать, или они должны быть транслируемы в одну форму.
- x * y ¶
-
Умножение матриц. Число столбцов x должно совпадать с числом строк y.
- x .* y ¶
-
Поэлементное умножение. Если оба операнда — матрицы, число строк и столбцов должно совпадать, или они должны быть транслируемы в одну форму.
- x / y ¶
-
Правое деление. По сути, это эквивалентно выражению
(inv (y') * x')'
но оно вычисляется без вычисления обратной матрицы y’.
Если система не квадратная или матрица коэффициентов вырожденная, вычисляется решение минимальной нормы.
- x ./ y ¶
-
Поэлементное правое деление.
- x \ y ¶
-
Левое деление. По сути, это эквивалентно выражению
inv (x) * y
но оно вычисляется без вычисления обратной матрицы x.
Если система не квадратная или матрица коэффициентов вырожденная, вычисляется решение минимальной нормы.
- x .\ y ¶
-
Поэлементное левое деление. Каждый элемент y делится на соответствующий элемент x.
- x ^ y ¶
-
Оператор возведения в степень. Если x и y — скаляры, этот оператор возвращает x в степени y. Если x — скаляр, а y — квадратная матрица, результат вычисляется с помощью разложения по собственным значениям. Если x — квадратная матрица, результат вычисляется путём многократного умножения, если y — целое число, и с помощью разложения по собственным значениям, если y не целое. Возникает ошибка, если оба x и y — матрицы.
Реализация этого оператора нуждается в улучшении.
- x .^ y ¶
-
Поэлементный оператор возведения в степень. Если оба операнда — матрицы, число строк и столбцов должно совпадать, или они должны быть транслируемы в одну форму. Если несколько комплексных результатов возможны, берется тот, у которого наименьшее неотрицательное значение аргумента (угол). Это правило может возвращать комплекный корень, даже если возможен вещественный. Используйте
realpow,realsqrt,cbrt, илиnthroot, если предпочитается вещественный результат. - -x ¶
-
Отрицание.
- +x ¶
-
Унарный плюс. Этот оператор не оказывает влияния на операнд.
- x’ ¶
-
Комплексно-сопряженный транспонированный оператор. Для вещественных аргументов этот оператор такой же, как и оператор транспонирования. Для комплексных аргументов этот оператор эквивалентен выражению
conj (x.')
- x.’ ¶
Транспонирование.
Обратите внимание, что, поскольку поэлементные операторы Octave начинаются с ‘.’, возможна неоднозначность в операциях, таких как
1./m
потому что точка может быть интерпретирована либо как часть константы, либо как часть оператора. Для разрешения этого конфликта Octave обрабатывает выражение так, как если бы вы набрали
(1) ./ m
а не
(1.) / m
Хотя это не соответствует обычному поведению лексического анализатора Octave, который обычно предпочитает разбивать входные данные на токены, выбирая наибольшее возможное соответствие в любой момент, в данном случае это более полезно.
Обратите также внимание, что некоторые комбинации бинарных операторов и пробелов могут создавать видимые неоднозначности с формой вызова функций в командной строке. См. Форматы командной строки и синтаксис функций для описания обработки этого синтаксиса Octave.
-
:
B =ctranspose(A)¶ -
Возвращает комплексно-сопряжённый транспонированный оператор A.
Эта функция и
A'эквивалентны.См. также: transpose.
-
:
y =pagectranspose(A)¶ -
Возвращает страницу за страницей комплексно-сопряжённый транспонированный оператор N-мерного массива A.
Это эквивалентно
A(:,:, k)'для каждой страницы k.См. также: pagetranspose, ctranspose, permute.
-
:
C =ldivide(A, B)¶ -
Возвращает поэлементное левое деление A и B.
Эта функция и
A .\ Bэквивалентны.
-
:
C =mldivide(A, B)¶ -
Возвращает матричное левое деление A и B.
Эта функция и
A \ Bэквивалентны.Если система не квадратная или матрица коэффициентов вырожденная, вычисляется решение минимальной нормы.
-
:
C =mpower(A, B)¶ -
Возвращает матричную операцию возведения в степень A в степени B.
Эта функция и
A ^ Bэквивалентны.
-
:
C =mtimes(A, B)¶ -
:
C =mtimes(A1, A2, …)¶ -
Возвращает произведение матричного умножения входных данных.
Эта функция и
A * Bэквивалентны. Если задано несколько аргументов, умножение применяется кумулятивно слева направо:(...((A1 * A2) * A3) * ...)
См. также: times, plus, minus, rdivide, mrdivide, mldivide, mpower, tensorprod.
-
:
C =plus(A, B)¶ -
:
C =plus(A1, A2, …)¶ -
Эта функция и
A + Bэквивалентны.Если задано несколько аргументов, суммирование применяется кумулятивно слева направо:
(...((A1 + A2) + A3) + ...)
-
:
C =power(A, B)¶ -
Возвращает поэлементную операцию A в степени B.
Эта функция и
A .^ Bэквивалентны.Если возможно несколько комплексных результатов, возвращается тот, у которого наименьший неотрицательный аргумент (угол). Используйте
realpow,realsqrt,cbrt, илиnthrootесли предпочтительнее вещественный результат.
-
:
C =rdivide(A, B)¶ -
Возвращает поэлементное правое деление A и B.
Эта функция и
A ./ Bэквивалентны.
-
:
C =times(A, B)¶ -
:
C =times(A1, A2, …)¶ -
Возвращает произведение поэлементного умножения входных данных.
Эта функция и
A .* Bэквивалентны. Если задано несколько аргументов, умножение применяется кумулятивно слева направо:(...((A1 .* A2) .* A3) .* ...)
-
:
B =transpose(A)¶ -
Возвращает транспонированную матрицу A.
Эта функция и
A.'эквивалентны.См. также: ctranspose.
-
:
B =pagetranspose(A)¶ -
Возвращает транспонирование по страницам N-мерного массива A.
Это эквивалентно
A(:,:, k).'для каждой страницы k.См. также: pagectranspose, transpose, permute.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Arithmetic-Ops.html