matlab cross()函数叉乘 计算过程详解

向量叉乘


在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。在Matlab中,用函数cross实现。

函数  cross()

格式  C = cross(A,B)   %若A、B为向量,则返回A与B的叉乘,即C=A×B,A、B必须是3个元素的向量;若A、B为矩阵,则返回一个3×n矩阵,其中的列是A与B对应列的叉积,A、B都是3×n矩阵。

C = cross(A,B,dim)   %在dim维数中给出向量A与B的叉积。A和B必须具有相同的维数,size(A,dim)和size(B,dim)必须是3。
 

1行三列的向量 相乘

计算向量的外积(叉乘)。(x1,y1,z1)×(x2,y2,z2)=(y1z2-y2z1,z1x2-z2x1,x1y2-x2y1)

>> a=[0,0,1];  
>> b=[0,2,0];  
>> c=cross(a,b)    %计算向量a与b的外积  
c =  
    -2     0     0  

 如果是3x3,5x3类型的矩阵  如何叉乘呢

就是同理原则。3个1行3列向量 组成3x3,那么叉乘的计算公式和上面的一样。

A=\begin{bmatrix} x1,y1,z1\\ a1,b1,c1 \end{bmatrix}

 B=\begin{bmatrix} x2,y2,z2\\ a2,b2,c2 \end{bmatrix}

cross(A,B)=\begin{bmatrix} y1*z2-y2*z1 ,z1*x2-z2*x1 ,x1*y2-x2*y1 \\ b1*c2-b2*c1 ,c1*a2-c2*a1 ,a1*b2-a2*b1 \end{bmatrix}

一次类推,3X3,矩阵,4X3矩阵的乘法 一样。

实例:

1x3

a =

     1     2     3

>> b=[3,4,5]

b =

     3     4     5

>> cross(a,b)

ans =

    -2     4    -2

>> 

2x3矩阵

a2 =

     1     2     3
     2     3     4

>> b2=[3,4,5;4,5,6]

b2 =

     3     4     5
     4     5     6

>> cross(a2,b2)

ans =

    -2     4    -2
    -2     4    -2

你可能感兴趣的:(MATLAB,matlab,算法,开发语言)