您的位置:首页 > 编程语言 > MATLAB

MATLAB一些函数总结

2015-11-30 22:26 465 查看
最近在看卷积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中提供了许多对矩阵操作的函数,可以实现矩阵的三角矩阵的提取(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使用方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 函数