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 = mrdivide (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.
- : 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/v8.1.0/Arithmetic-Ops.html