cross

Перекрестный продукт

Описание

пример

C = cross(A,B) возвращает перекрестный продукт A и B.

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

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

пример

C = cross(A,B,dim) оценивает перекрестный продукт массивов A и B вдоль размерности, dim. A и B должен иметь одинаковый размер, и оба size(A,dim) и size(B,dim) должно быть 3. The dim вход является положительным целочисленным скаляром.

Примеры

свернуть все

Создайте два вектора 3-D.

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

Найдите перекрестный продукт A и B. Результат, C, - вектор, который перпендикулярен обоим A и B.

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

    -5   -11    -2

Используйте продукты с точками, чтобы проверить, что C перпендикулярно A и B.

dot(C,A)==0 & dot(C,B)==0
ans = logical
   1

Результат логичен 1 (true).

Создайте две матрицы, содержащие случайные целые числа.

A = randi(15,3,5)
A = 3×5

    13    14     5    15    15
    14    10     9     3     8
     2     2    15    15    13

B = randi(25,3,5)
B = 3×5

     4    20     1    17    10
    11    24    22    19    17
    23    17    24    19     5

Найдите перекрестный продукт A и B.

C = cross(A,B)
C = 3×5

   300   122  -114  -228  -181
  -291  -198  -105   -30    55
    87   136   101   234   175

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

Создайте два многомерных массива случайных целых чисел 3 на 3 на 3.

A = randi(10,3,3,3);
B = randi(25,3,3,3);

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

C = cross(A,B,2)
C = 
C(:,:,1) =

   -34    12    62
    15    72  -109
   -49     8     9


C(:,:,2) =

   198  -164  -170
    45     0   -18
   -55   190  -116


C(:,:,3) =

  -109   -45   131
     1   -74    82
    -6   101  -121

Результатом является набор векторов-строк. Для примера, C(1,:,1) равен перекрестному продукту A(1,:,1) с B(1,:,1).

Найдите перекрестный продукт A и B по третьей размерности (dim = 3).

D = cross(A,B,3)
D = 
D(:,:,1) =

   -14   179  -106
   -56    -4   -75
     2   -37    10


D(:,:,2) =

   -37  -162   -37
    50  -124   -78
     1    63   118


D(:,:,3) =

    62  -170    56
    46    72   105
    -2   -53  -160

Результатом является набор векторов, ориентированных в третьей размерности. Для примера, D(1,1,:) равен перекрестному продукту A(1,1,:) с B(1,1,:).

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

свернуть все

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

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

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

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

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

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

cross возвращает ошибку, если dim больше ndims(A).

Подробнее о

свернуть все

Перекрестный продукт

Перекрестный продукт между двумя векторами 3-D создаёт новый вектор, который перпендикулярен обоим.

Рассмотрим два вектора

A=a1i^+a2j^+a3k^,B=b1i^+b2j^+b3k^.

В терминах определителя матрицы, включающего базисные векторы i^, j^, и k^, перекрестный продукт A и B,

C=A×B=|i^j^k^a1b1a2b2a3b3|=(a2b3a3b2)i^+(a3b1a1b3)j^+(a1b2a2b1)k^.

Геометрически, A×B перпендикулярно как A, так и B. Величина поперечного продукта, A×B, равен площади параллелограмма, образованного с использованием A и B в качестве сторон. Эта область связана с величинами A и B, а также с углом между векторами

A×B=ABsinα.

Таким образом, если A и B параллельны, то перекрестный продукт равняется нулю.

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

..

См. также

| |

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