cross
叉积
说明
示例
向量的叉积
创建两个三维向量。
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,:)
的叉积。
输入参数
A,B
— 输入数组
数值数组
输入数组,指定为数值数组。
数据类型: single
| double
复数支持: 是
dim
— 沿其运算的维度
正整数标量
沿其运算的维度,指定为正整数标量。维度 dim
的大小必须为 3。如果未指定值,则默认值是大小等于 3 的第一个数组维度。
考虑两个二维输入数组:A
和 B
:
cross(A,B,1)
将A
和B
的列视为向量,并返回对应列的叉积。cross(A,B,2)
将A
和B
的行视为向量,并返回对应行的叉积。
如果 dim
大于 ndims(A)
,则 cross
返回错误。
详细信息
叉积
两个三维向量之间的叉积生成一个与这两个向量都垂直的新向量。
考虑两个向量
根据涉及基向量 、 和 的矩阵行列式,A 和 B 的叉积为
在几何上, 同时与 A 和 B 正交。叉积 的幅值等于使用 A 和 B 作为边构成的平行四边形的面积。此面积与 A 和 B 的幅值以及向量之间的角度有关
因此,如果 A 和 B 平行,则叉积为零。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
如果提供
dim
,则它必须为常量。请参阅Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder)。
代码生成不支持对此函数使用稀疏矩阵输入。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
用法说明和限制:
如果提供
dim
,则它必须为常量。代码生成不支持对此函数使用稀疏矩阵输入。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)