Matlab中矩阵卷积函数convn

最近在看CNN做手写数字识别,其中CNN中Convolution在图像处理中就涉及了矩阵卷积。因为博主有了奥本海姆《信号与系统》中一维卷积的基础,这里就类比的推广一下矩阵卷积(二维,高维类似)。

卷积步骤:
1. 考虑到卷积的交换律,可以选择较方便矩阵(一般选较小)作为卷积核。对此矩阵进行绕中心的180度旋转,如 [1420] \left[ \begin{matrix}1 & 2 \\4 & 0\end{matrix} \right] 变换成 [0241] \left[ \begin{matrix}0 & 4 \\2 & 1\end{matrix} \right] ;
2. 将旋转过的卷积核左下角的元素与待卷积矩阵的右上角元素对齐(重叠),没有重叠元素处补零,重叠处相乘,乘积和即为结果矩阵的 a1,1 a_{1,1};
3. 依次左移,求结果矩阵第一行元素,直到两矩阵无重叠为止;
4. 依次下移,求结果矩阵第一列元素,直到两矩阵无重叠为止;
5. 其余各处元素类似可求的;

这里Matlab还提供了其他几种用法:

%   C = CONVN(A, B, 'shape') controls the size of the answer C:
%     'full'   - (default) returns the full N-D convolution
%     'same'   - returns the central part of the convolution that
%                is the same size as A.
%     'valid'  - returns only the part of the result that can be
%                computed without assuming zero-padded arrays.
%                size(C,k) = max([nak-max(0,nbk-1)],0).

其中’valid’就可以直接用在CNN的图像处理中。

example:
>> a = [1,2;4,0]a =1     24     0>> b = [1,2;3,4]b =1     23     4>> conv2(a,b)ans =1     4     47    18     812    16     0
%conv2是专门用于二维的卷积函数,convn可用于高维;

Matlab中矩阵卷积函数convn相关推荐

  1. python实现Matlab中的circshift函数

    circshift是Matlab中矩阵循环移位函数,具体使用参照该链接. 但是python中并没有封装好的该函数,因此需要自己实现. 思路:将矩阵分为两部分,然后按照自己的需要堆叠在一起就可以了. n ...

  2. QT/C++/Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差

    QT / C++ / Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差 //定义一个按列求标准差的函数,其中A为被求列标准差的矩阵,OutputMatrix为求出的列标准差 v ...

  3. matlab里inline定义矩阵,Matlab中的inline函数_matlab中inline函数

    Matlab中的inline函数 1.有时为了描述某个数学函数的方便,可以用inline()函数来直接编写该函数,形式相当于M-函数,但无编写一个真正的MATLAB文件,就可以描述出某种数学关系.其调 ...

  4. MATLAB中的常用函数小结

    1. MATLAB中的常用函数小结 文章目录 1. MATLAB中的常用函数小结 1. MATLAB图像处理工具箱 1.1 图像显示 1.2 图像文件输入/输出 1.3. 图像像素值及其统计 1.4 ...

  5. matlab的数学函数,matlab中常见数学函数的使用

    matlab中常见数学函数的使用 MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数 e i 或 j 虚数单位 Inf 或 inf 无穷大 Matlab 的常 ...

  6. Matlab中的eig函数和Opecv中eigen()函数的区别

    奇异值分解的理论参见下面的链接 http://www.cnblogs.com/pinard/p/6251584.html https://blog.csdn.net/shenziheng1/artic ...

  7. MATLAB中神经网络train函数使用说明

    MATLAB中神经网络train( )函数使用说明 函数的语法格式如下: [net, tr]=train(net, P, T, Pi, Ai): train( )函数用于训练创建好的感知器网络,事实上 ...

  8. matlab randi 函数,MATLAB中的randi函数

    randi Pseudorandom integers from a uniform discrete distribution.来自一个均匀离散分布的伪随机整数 R = randi(IMAX,N) ...

  9. matlab fopen函数的用法,matlab中关于fread函数的用法

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:matlab中关于fread函数的用法 问题详情:用fread打开一个时,需要不需要把开放在某个特回答:必须在Matlab可以搜索的 ...

最新文章

  1. 2022-2028年中国硅酸钙板行业市场研究及前瞻分析报告
  2. java 判断是否为邮箱_Java判断邮箱是否存在 有返回值
  3. md5碰撞Java_java现在MD5加密不安全了吗?
  4. Hbase 预写日志WAL处理源码分析之 LogCleaner
  5. VLAN与trunk配置
  6. rem,em,px的区别
  7. Oracle的SQL基础之用户与表空间
  8. toxic comment classification 数据集
  9. 3dmax材质丢失插件_3dmax插件排行|室内设计师效果图用疯狂模渲大师,怎么把cononra材质转换成vray材质?...
  10. 在web项目启动时,使用监听器来执行某个方法
  11. Chrome浏览器的Network面板介绍
  12. matlab 汽车雷达模拟器,雷达回波模拟器在汽车雷达测试中的应用
  13. R语言与LASSO回归和LAR算法
  14. Microbiome:环境过滤驱动农田生态系统土壤古菌独特的空间分布(一作解读)
  15. 员工和老板的差距不只是能力,还有战略思维
  16. panabit流量控制
  17. 模拟黑洞图像_全息图像模拟黑洞计划一一物理学家们的下一个宏伟目标
  18. 数据结构 时间复杂度 空间复杂度 一看就懂版本
  19. 没有身家也要有身价,有身家更要有身价
  20. ArcGIS开发Questions小总结(A_Z)

热门文章

  1. java 线性回归_Java实现一元线性回归
  2. Directshow的优点与缺点
  3. html DOM------document
  4. 大学生毕业后想成为产品经理?那你得先从以下几个方面入手!
  5. BarChart 柱状图 实例
  6. 修改微信文件的默认保存位置
  7. 对openmv色块查找的思考笔记
  8. Spring/SpringBoot学习中遇到的问题记录(2):java.lang.ClassNotFoundException:org.apache.jsp.WEB_002dINF.views.xx
  9. 创建vue项目的时候报错:Skipped git commit due to missing username and email in git config.
  10. 射频卡读写原理及实现