точка

Скалярное произведение

Синтаксис

C = dot(A,B)
C = dot(A,B,dim)

Описание

пример

C = dot(A,B) возвращает скалярное скалярное произведение A и B.

  • Если A и B являются векторами, то у них должна быть та же длина.

  • Если A и B являются матрицами или многомерными массивами, то у них должен быть тот же размер. В этом случае функция dot обрабатывает A и B как наборы векторов. Функция вычисляет скалярное произведение соответствующих векторов вдоль первого измерения массива, размер которого не равняется 1.

пример

C = dot(A,B,dim) оценивает скалярное произведение A и B по измерению, dim. Входной параметр dim является положительным целочисленным скаляром.

Примеры

свернуть все

Создайте два простых, трехэлементных вектора.

A = [4 -1 2];
B = [2 -2 -1];

Вычислите скалярное произведение A и B.

C = dot(A,B)
C = 8

Результатом является 8 с тех пор

C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)

Создайте два комплексных вектора.

A = [1+i 1-i -1+i -1-i];
B = [3-4i 6-2i 1+2i 4+3i];

Вычислите скалярное произведение A и B.

C = dot(A,B)
C = 1.0000 - 5.0000i

Результатом является комплексный скаляр, поскольку A и B являются комплексными. В целом скалярное произведение двух комплексных векторов является также комплексным. Исключение - когда вы берете скалярное произведение комплексного вектора с собой.

Найдите скалярное произведение A с собой.

D = dot(A,A)
D = 8

Результатом является действительный скаляр. Скалярное произведение вектора с собой связано с Евклидовой длиной вектора, norm(A).

Создайте две матрицы.

A = [1 2 3;4 5 6;7 8 9];
B = [9 8 7;6 5 4;3 2 1];

Найдите скалярное произведение A и B.

C = dot(A,B)
C = 1×3

    54    57    54

Результат, C, содержит три отдельных скалярных произведения. dot обрабатывает столбцы A и B как векторы и вычисляет скалярное произведение соответствующих столбцов. Так, например, C(1) = 54 является скалярным произведением A(:,1) с B(:,1).

Найдите скалярное произведение A и B, обработав строки как векторы.

D = dot(A,B,2)
D = 3×1

    46
    73
    46

В этом случае D(1) = 46 является скалярным произведением A(1,:) с B(1,:).

Создайте два многомерных массива.

A = cat(3,[1 1;1 1],[2 3;4 5],[6 7;8 9])
A = 
A(:,:,1) =

     1     1
     1     1


A(:,:,2) =

     2     3
     4     5


A(:,:,3) =

     6     7
     8     9

B = cat(3,[2 2;2 2],[10 11;12 13],[14 15; 16 17])
B = 
B(:,:,1) =

     2     2
     2     2


B(:,:,2) =

    10    11
    12    13


B(:,:,3) =

    14    15
    16    17

Вычислите скалярное произведение A и B по третьему измерению (dim = 3).

C = dot(A,B,3)
C = 2×2

   106   140
   178   220

Результат, C, содержит четыре отдельных скалярных произведения. Первое скалярное произведение, C(1,1) = 106, равно скалярному произведению A(1,1,:) с B(1,1,:).

Входные параметры

свернуть все

Входные массивы, заданные как числовые массивы.

Типы данных: single | double
Поддержка комплексного числа: Да

Величина для работы, заданная как положительный целый скаляр. Если никакое значение не задано, значением по умолчанию является первое измерение массива, размер которого не равняется 1.

Рассмотрите два 2D входных массива, A и B:

  • dot(A,B,1) обрабатывает столбцы A и B как векторы и возвращает скалярные произведения соответствующих столбцов.

  • dot(A,B,2) обрабатывает строки A и B как векторы и возвращает скалярные произведения соответствующих строк.

dot возвращает conj(A).*B, если dim больше, чем ndims(A).

Больше о

свернуть все

Скалярное скалярное произведение

Скалярное скалярное произведение двух действительных векторов длины n равно

=  i=1nuivi=u1v1+u2v2 +... +unvn .

Это отношение является коммутативным для действительных векторов, таким, что dot(u,v) равняется dot(v,u). Если скалярное произведение равно нулю, то u и v перпендикулярны.

Для комплексных векторов скалярное произведение включает сопряженное комплексное число. Это гарантирует, что скалярное произведение любого вектора с собой действительно и положительное определенный.

= i=1nu¯ivi .

В отличие от отношения для действительных векторов, комплексное отношение не является коммутативным, таким образом, dot(u,v) равняется conj(dot(v,u)).

Алгоритмы

  • Когда входные параметры, A и B являются действительными или комплексными векторами, функция dot, обрабатывают их как векторы - столбцы, и dot(A,B) совпадает с sum(conj(A).*B) B.

  • То, когда входные параметры являются матрицами или многомерными массивами, аргумент dim определяет, которые определяют размеры функции sum, работает с. В этом случае dot(A,B) совпадает с sum(conj(A).*B,dim).

Расширенные возможности

Смотрите также

| | |

Представлено до R2006a

Была ли эта тема полезной?