概述
最近在看卷积RBM的相关知识,主要在研究Honglak Lee的文章:Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. 看了Honglak Lee的代码[论文及代码见这里]后,深感大牛的功力深厚,从大牛的代码中学习了很多细节,在这里做一些简单的总结:
1、squeeze :除去size为1的维度
描述:B=squeeze(A),B与A有相同的元素,但所有只有一行或一列的维度(a singleton dimension)被去除掉了。
a=rand(4,3,1);%产生一个均匀分布的阵列,共3页,每页4行1列
b=squeeze(a) %经过squeeze后,结果如下
b =
0.9294 0.5177 0.3816
0.3806 0.5661 0.3082
0.4571 0.0626 0.0101
0.7965 0.0328 0.1839
2、randsample,该函数的总结见上一篇博客
3、fliplr 左右翻转矩阵
描述:B = fliplr(A)
将矩阵A的列绕垂直轴进行左右翻转 matabc
如果A是一个行向量,fliplr(A)将A中元素的顺序进行翻转。
如果A是一个列向量,fliplr(A)还等于A。
a=[1 2 3 4 5;4 5 6 7 8] %生成一个2行5列的矩阵
b=fliplr(a) %对a进行左右对称翻转
结果如下:
a =
1 2 3 4 5
4 5 6 7 8
b =
5 4 3 2 1
8 7 6 5 4
补充:matlab中提供了许多对矩阵操作的函数,可以实现矩阵的三角矩阵的提取(triu、tril)、矩阵的翻转(flipud、flipdim)和旋转(rot90)等各种操作。
4、imresize该函数用于对图像做缩放处理
调用格式 :
(1)B = imresize(A, m)
返回的图像B的长宽是图像A的长宽的m倍,即缩放图像。 m大于1, 则放大图像; m小于1, 缩小图像。
(2)B = imresize(A, [numrows numcols])
numrows和numcols分别指定目标图像的高度和宽度。 显而易见, 由于这种格式允许图像缩放后长宽比例和源图像长宽比例不相同,因此所产生的图像有可能发生畸变。
[Y newmap] = imresize(X, map, scale)
[…] = imresize(…, method)
method参数用于指定在改变图像尺寸时所使用的算法, 可以为以下几种:
‘nearest’: 这个参数也是默认的, 即改变图像尺寸时采用最近邻插值算法;
‘bilinear’:采用双线性插值算法;
‘bicubic’: 采用双三次插值算法.
5、conv2 进行卷积运算
C=conv2(A,B,shape); %卷积滤波
解释如下:
A:输入图像,B:卷积核
假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则
(1)当shape=full时,返回全部二维卷积结果,即返回C的大小x(na+nb-1
(2)shape=same时,返回与A同样大小的卷积中心部分;
(3)shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回C的大小为(ma-mb+1)x(na-nb+1).
6、fileparts在FreeMat、Matlab中,该函数用于将一个文件的完整路径中各部分提取出来。
语法格式:
[pathstr, name, ext] = fileparts(filename)
其中filename是要解析的文件的完整路径,例如:E:gamesIGIbinIGI.exe。fileparts将这个文件名(包含完整路径信息)各部分分别提取到四个变量中。
其中pathstr是这个文件的路径名,name是文件名,ext是包含一个点号文件的扩展名(指定了文件的类型)。
举例:
filename ='E:学习资料Honglak Lee Papers code';
[pathstr, name, ext] = fileparts(filename)
结果如下:
pathstr =E:学习资料
name =Honglak Lee Papers code
ext =”
7、save 保存变量
用法:save example A 表示将A存为example.mat保存在变量空间中。
保存到某个目录下:save(‘Dictionaryexample.mat’,’A’) Dictionary是指某个目录。
以上的总结不一定全面,如果没有写全的地方可以采用MATLAB查询的工具help指令。
参考资料:
【1】Matlab conv2 和filter2的区别
【2】Matlab矩阵基本操作(定义、运算)
【3】Matlab命令系列之目录操作
【4】Matlab中save,load使用方法
最后
以上就是无限樱桃为你收集整理的MATLAB一些函数总结的全部内容,希望文章能够帮你解决MATLAB一些函数总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复