8.3 Арифметические операторы
Следующие арифметические операторы доступны и работают со скалярами и матрицами. Операторы и функции поэлементного действия транслируются (см. Транслирование).
- x + y
-
Сложение. Если оба операнда являются матрицами, количество строк и столбцов должно совпадать или они должны быть транслируемы в один и тот же размер.
- x .+ y
-
Поэлементное сложение. Этот оператор эквивалентен
+. - 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 — квадратной матрицей, результат вычисляется с использованием разложения по собственным значениям. Если x является квадратной матрицей, результат вычисляется путем повторного умножения, если y является целым числом, и с помощью разложения по собственным значениям, если y не является целым числом. Возникает ошибка, если оба x и y являются матрицами.
Реализация этого оператора нуждается в улучшении.
- x .^ y
- x .** y
-
Поэлементный оператор степени. Если оба операнда являются матрицами, количество строк и столбцов должно совпадать или они должны быть транслируемы в один и тот же размер. Если возможно несколько комплексных результатов, берется тот, у которого наименьший неотрицательный аргумент (угол). Это правило может вернуть комплекный корень, даже если возможен действительный корень. Используйте
realpow,realsqrt,cbrt, илиnthroot, если предпочтительнее действительный результат. - -x
-
Отрицание.
- +x
-
Унарный плюс. Этот оператор не влияет на операнд.
- x’
-
Комплексно-сопряженный транспонированный. Для вещественных аргументов этот оператор такой же, как оператор транспонирования. Для комплексных аргументов этот оператор эквивалентен выражению
conj (x.')
- x.’
-
Транспонирование.
Обратите внимание, что, поскольку операторы Octave поэлементного действия начинаются с ‘.’, существует возможная неоднозначность для операторов, таких как
1./m
поскольку точка может интерпретироваться как часть константы или как часть оператора. Чтобы разрешить этот конфликт, Octave интерпретирует выражение так, как будто вы набрали
(1) ./ m
а не
(1.) / m
Хотя это не соответствует обычному поведению лексического анализатора Octave, который обычно предпочитает разбивать входные данные на токены, отдавая предпочтение наибольшему возможному совпадению в любой момент, это более полезно в этом случае.
- : ctranspose (x)
-
Возвращает комплексно-сопряженный транспонированный x.
Эта функция и
x'эквивалентны.См. также: transpose.
- : ldivide (x, y)
-
Возвращает поэлементное деление слева x и y.
Эта функция и
x .\ yэквивалентны.
- : mldivide (x, y)
-
Возвращает матричное деление слева x и y.
Эта функция и
x \ yэквивалентны.Если система не квадратная или матрица коэффициентов вырожденная, вычисляется решение с минимальной нормой.
- : mpower (x, y)
-
Возвращает матричную операцию возведения в степень x в степень y.
Эта функция и
x ^ yэквивалентны.
- : mrdivide (x, y)
-
Возвращает матричное деление справа x и y.
Эта функция и
x / yэквивалентны.Если система не квадратная или матрица коэффициентов вырожденная, вычисляется решение с минимальной нормой.
- : mtimes (x, y)
- : mtimes (x1, x2, …)
-
Возвращает произведение матричного умножения входных данных.
Эта функция и
x * yэквивалентны. Если задано больше аргументов, умножение применяется кумулятивно слева направо:(…((x1 * x2) * x3) * …)
См. также: times, plus, minus, rdivide, mrdivide, mldivide, mpower.
- : plus (x, y)
- : plus (x1, x2, …)
-
Эта функция и
x + yэквивалентны.Если задано больше аргументов, суммирование применяется кумулятивно слева направо:
(…((x1 + x2) + x3) + …)
- : power (x, y)
-
Возвращает поэлементную операцию возведения x в степень y.
Эта функция и
x .^ yэквивалентны.Если возможно несколько комплексных результатов, возвращается тот, у которого наименьший неотрицательный аргумент (угол). Используйте
realpow,realsqrt,cbrt, илиnthroot, если предпочтительнее действительный результат.
- : rdivide (x, y)
-
Возвращает поэлементное деление справа x и y.
Эта функция и
x ./ yэквивалентны.
- : times (x, y)
- : times (x1, x2, …)
-
Возвращает произведение поэлементного умножения входных данных.
Эта функция и
x .* yэквивалентны. Если задано больше аргументов, умножение применяется кумулятивно слева направо:(…((x1 .* x2) .* x3) .* …)
- : transpose (x)
-
Возвращает транспонирование x.
Эта функция и
x.'эквивалентны.См. также: ctranspose.
© 1996–2022 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/v6.4.0/Arithmetic-Ops.html