convn
N 维卷积
说明
示例
三维卷积
您可以控制 convn
函数的输出大小。例如,'same'
选项会删除卷积的外部部分,只返回中心部分,此部分的大小与输入相同。
求随机 2×3×2 数组 A
与 2×2×2 核 B
的卷积。结果是一个 3×4×3 数组,大小等于 size(A) + size(B) - 1
。
A = rand(2,3,2); B = 0.25*ones(2,2,2); C = convn(A,B)
C = C(:,:,1) = 0.2037 0.2354 0.1898 0.1581 0.4301 0.6902 0.4426 0.1825 0.2264 0.4548 0.2527 0.0244 C(:,:,2) = 0.2733 0.5444 0.4686 0.1975 0.6365 1.3772 1.2052 0.4645 0.3632 0.8327 0.7366 0.2670 C(:,:,3) = 0.0696 0.3090 0.2788 0.0394 0.2063 0.6869 0.7627 0.2821 0.1367 0.3779 0.4839 0.2426
sizeC = size(A) + size(B) - 1
sizeC = 1×3
3 4 3
返回卷积的中心部分,大小与 A
相同。
C = convn(A,B,'same')
C = C(:,:,1) = 1.3772 1.2052 0.4645 0.8327 0.7366 0.2670 C(:,:,2) = 0.6869 0.7627 0.2821 0.3779 0.4839 0.2426
输入参数
A
— 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
数据类型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
复数支持: 是
B
— 第二个输入数组
向量 | 矩阵 | 多维数组
第二个输入数组,指定为要与 A
求卷积的向量、矩阵或多维数组。数组 B
的大小不是必须与 A
相同。
数据类型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
复数支持: 是
shape
— 卷积的分段
'full'
(默认) | 'same'
| 'valid'
卷积的分段,指定为下列值之一:
'full'
- 返回完整的 N 维卷积。'same'
- 返回卷积中大小与A
相同的中心部分。'valid'
- 仅返回计算的没有补零边缘的卷积部分。
输出参数
C
— N 维卷积
向量 | 矩阵 | 多维数组
N 维卷积,以向量、矩阵或多维数组形式返回。如果 A
和 B
的维数相同,则全卷积 C = convn(A,B)
的大小为 size(A)+size(B)-1
。
当 A
和 B
中有一个或两个都是 single
类型时,输出的类型为 single
。否则,convn
会将输入转换为类型 double
,并返回类型 double
。
数据类型: double
| single
详细信息
N 维卷积
对于离散的 N 维变量 A 和 B,以下方程定义 A 和 B 的卷积:
每个 ki 对生成 A 和 B 的合法下标的所有值求和。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
用法说明和限制:
如果
shape
是'full'
(默认值),则输入A
和B
不能为空,且其中只有一个可以是 tall 数组。如果
shape
是'same'
或'valid'
,则B
不能为 tall 数组。
有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
基于线程的环境
使用 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)