Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

convn

N 维卷积

说明

示例

C = convn(A,B) 返回数组 ABN 维卷积

示例

C = convn(A,B,shape) 根据 shape 返回卷积的子区。例如,C = convn(A,B,'same') 返回卷积中大小与 A 相同的中心部分。

示例

全部折叠

您可以控制 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

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
复数支持:

第二个输入数组,指定为要与 A 求卷积的向量、矩阵或多维数组。数组 B 的大小不是必须与 A 相同。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
复数支持:

卷积的分段,指定为下列值之一:

  • 'full' - 返回完整的 N 维卷积。

  • 'same' - 返回卷积中大小与 A 相同的中心部分。

  • 'valid' - 仅返回计算的没有补零边缘的卷积部分。

输出参数

全部折叠

N 维卷积,以向量、矩阵或多维数组形式返回。如果 AB 的维数相同,则全卷积 C = convn(A,B) 的大小为 size(A)+size(B)-1

AB 中有一个或两个都是 single 类型时,输出的类型为 single。否则,convn 会将输入转换为类型 double,并返回类型 double

数据类型: double | single

详细信息

全部折叠

N 维卷积

对于离散的 N 维变量 A 和 B,以下方程定义 A 和 B 的卷积:

C(j1,j2,...,jN)=k1k2...kNA(k1,k2,...,kN)B(j1k1+1,j2k2+1,...,jNkN+1)

每个 ki 对生成 A 和 B 的合法下标的所有值求和。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

|