Подтвердить что ты не робот

Что означает оператор "точка" (.)?

С учетом кода:

 A = [1 2 3; 3 2 1]
 B = A.^2

Выход:

B =

     1     4     9
     9     4     1

Но если я это сделаю: B = A^2

Вывод:

Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

Что делает оператор . точно?

4b9b3361

Ответ 1

Сама точка не является оператором, .^ is.

.^ является точечной (то есть элементной) мощностью, поскольку .* является потоковым продуктом.

.^Массивная мощность. A.^B - это матрица с элементами A(i,j) до степени B(i,j). A и B должны иметь одинаковый размер, если только один из них не является скаляром.

C.f.

¹) Следовательно, точка.

Ответ 2

В документации MATLAB, посвященной этой теме, есть целая страница: Array vs. Matrix Operations. Суть его ниже:

MATLAB® имеет два разных типа арифметических операций: операции операции с массивами и операции с матрицей. Вы можете использовать эти арифметические операции для выполнения числовых вычислений, например, добавление двух чисел, повышение элементов массива до заданной мощности или умножение двух матриц.

Матричные операции следуют правилам линейной алгебры. Напротив, операции массива выполняют операции по элементам и поддерживают многомерные массивы. Символ периода (.) отличает операции массива от операций с матрицей. Однако, поскольку операции с матрицей и массивом одинаковы для сложения и вычитания, пары символов .+ и .- не нужны.