MATLAB一些函数总结

最近在看卷积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] %生成一个25列的矩阵
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中提供了许多对矩阵操作的函数,可以实现矩阵的三角矩阵的提取(triutril)、矩阵的翻转(flipudflipdim)和旋转(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:\games\IGI\bin\IGI.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(‘Dictionary\example.mat’,’A’) Dictionary是指某个目录。

以上的总结不一定全面,如果没有写全的地方可以采用MATLAB查询的工具help指令。

参考资料:
【1】Matlab conv2 和filter2的区别
【2】Matlab矩阵基本操作(定义、运算)
【3】Matlab命令系列之目录操作
【4】Matlab中save,load使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值