31、matlab卷积运算:卷积运算、二维卷积、N维卷积

1、conv 卷积和多项式乘法

语法

语法1:w = conv(u,v) 返回向量 u 和 v 的卷积。

语法2:w = conv(u,v,shape) 返回如 shape 指定的卷积的分段。

参数

u,v --- 输入向量 shape --- 卷积的分段 'full' (默认) | 'same' | 'valid'

'full':全卷积 'same':与u大小相同的卷积的中心部分'valid':计算没有补零边缘的卷积部分

2、通过卷积计算多项式乘法

代码及运算

Matlab 复制代码
u = [1 0 1 1];
v = [2 7 1];
w = conv(u,v)

w =

     2     7     3     9     8     1

3、 向量卷积

代码及运算

Matlab 复制代码
u = [1 1 1 1];
v = [1 1 1 1 0 0 0 1 1];
w = conv(u,v)

w =

  列 1 至 11

     1     2     3     4     3     2     1     1     2     2     2

  列 12

     1

4、 卷积的中心部分

'same'代码及运算

Matlab 复制代码
u = [-1 2 1 3 1 -2 0 1 2];
v = [2 4 -1 1 1];
w = conv(u,v,'same')

w =

    11     7    14     0    -5     8     7     5    -1

'full'代码及运算

Matlab 复制代码
u = [-1 2 1 3 1 -2 0 1 2];
v = [2 4 -1 1 1];
w = conv(u,v,'full')

w =

  列 1 至 11

    -2     0    11     7    14     0    -5     8     7     5    -1

  列 12 至 13

     3     2

'valid'代码及运算

Matlab 复制代码
u = [-1 2 1 3 1 -2 0 1 2];
v = [2 4 -1 1 1];
w = conv(u,v,'valid')

w =

    14     0    -5     8     7

5、 conv2 二维卷积

语法

语法1:C = conv2(A,B) 返回矩阵 A 和 B 的二维卷积。

语法2:C = conv2(u,v,A) 首先求 A 的各列与向量 u 的卷积,然后求每行结果与向量 v 的卷积。

语法3:C = conv2(___,shape) 根据 shape 返回卷积的子区。

1)二维卷积

代码及运算

Matlab 复制代码
A = rand(3);
B = rand(4);
Cfull = conv2(A,B)%6*6
Csame = conv2(A,B,'same')%中心部位

Cfull =

    0.0781    0.8435    1.6181    1.6544    1.5357    0.7213
    0.2367    1.2223    2.9144    3.6484    2.8119    1.0920
    0.5183    1.4313    3.4028    4.2039    3.0881    1.3723
    0.2844    2.0170    2.9532    3.0694    2.6967    0.9839
    0.4857    1.3186    1.8013    1.5967    1.3232    0.4820
    0.5008    0.1639    0.8645    0.2304    0.3948    0.0831


Csame =

    3.4028    4.2039    3.0881
    2.9532    3.0694    2.6967
    1.8013    1.5967    1.3232

2)例子:提取二维台座边

代码及运算

Matlab 复制代码
A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)

视图效果

1) 计算水平边

代码及运算

Matlab 复制代码
u = [1 0 -1]';
v = [1 2 1];
Ch = conv2(u,v,A);
mesh(Ch)

视图效果

2)计算垂直边

代码及运算

Matlab 复制代码
Cv = conv2(v,u,A);
mesh(Cv)

视图效果

3) 绘制组合边长

6、convn N 维卷积

语法

语法1:C = convn(A,B) 返回数组 A 和 B 的 N 维卷积。

语法2:C = convn(A,B,shape) 根据 shape 返回卷积的子区。

1)三维卷积

代码及运算

Matlab 复制代码
A = rand(2,3,2);
B = 0.25*ones(2,2,2);
C = convn(A,B)

C(:,:,1) =

    0.1765    0.2457    0.0935    0.0243
    0.1845    0.2652    0.3109    0.2301
    0.0080    0.0195    0.2174    0.2059


C(:,:,2) =

    0.3502    0.6570    0.4408    0.1340
    0.4375    0.7644    0.7622    0.4352
    0.0872    0.1074    0.3214    0.3013


C(:,:,3) =

    0.1737    0.4113    0.3472    0.1097
    0.2530    0.4991    0.4512    0.2051
    0.0793    0.0879    0.1040    0.0954

代码及运算

Matlab 复制代码
A = rand(2,3,2);
B = 0.25*ones(2,2,2);
C = convn(A,B,'same')

C(:,:,1) =

    1.1643    0.8855    0.4774
    0.6798    0.4946    0.2022


C(:,:,2) =

    0.6049    0.4434    0.2044
    0.3586    0.2106    0.0407

代码及运算

Matlab 复制代码
 A = rand(2,3,2);
B = 0.25*ones(2,2,2);
C = convn(A,B,'full')

C(:,:,1) =

    0.0297    0.2697    0.3863    0.1463
    0.1543    0.4794    0.5273    0.2023
    0.1246    0.2097    0.1410    0.0560


C(:,:,2) =

    0.2176    0.5840    0.7355    0.3690
    0.4059    1.0322    1.2911    0.6648
    0.1884    0.4482    0.5556    0.2958


C(:,:,3) =

    0.1878    0.3143    0.3492    0.2227
    0.2516    0.5528    0.7638    0.4625
    0.0638    0.2385    0.4146    0.2398

代码及运算

Matlab 复制代码
A = rand(2,3,2);
B = 0.25*ones(2,2,2);
C = convn(A,B,'valid')

C =

    0.8574    0.8072
相关推荐
梦云澜1 小时前
论文阅读(十六):利用线性链条件随机场模型检测阵列比较基因组杂交数据的拷贝数变异
深度学习
好评笔记1 小时前
多模态论文笔记——VDT
论文阅读·深度学习·机器学习·大模型·aigc·transformer·面试八股
好评笔记1 小时前
多模态论文笔记——ViViT
论文阅读·深度学习·机器学习·计算机视觉·面试·aigc·transformer
梦云澜1 小时前
论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
论文阅读·人工智能·深度学习·学习
Great Bruce Young2 小时前
GPS信号生成:C/A码序列生成【MATLAB实现】
算法·matlab·自动驾驶·信息与通信·信号处理
人类群星闪耀时3 小时前
用深度学习优化供应链管理:让算法成为商业决策的引擎
人工智能·深度学习·算法
有Li4 小时前
基于先验领域知识的归纳式多实例多标签学习用于牙周病分类| 文献速递 -医学影像人工智能进展
人工智能·深度学习·文献
程序员老冯头5 小时前
第五节 MATLAB命令
开发语言·matlab·信息可视化
西猫雷婶6 小时前
神经网络|(四)概率论基础知识-古典概型
人工智能·神经网络·概率论
机器学习之心7 小时前
Matlab实现TCN-BiLSTM时间卷积神经网络结合双向长短期记忆神经网络多特征分类预测(附模型研究报告)
神经网络·matlab·cnn·tcn-bilstm·双向长短期记忆神经网络·多特征分类预测·时间卷积神经网络