Matlab中常见函数的用法1 size()函数1)s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。
2)[r,c]=size(A),当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。
3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1、2或者3为n赋值,则 size将返回矩阵的行数或列数。
其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。
如果A为一个二维数组,则可以将其看成一个第三维为1的数组,即size(A,3)的返回值为1。
2 padarray()函数B = padarray(A,padsize,padval,direction)A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数和列数,通常用[r c]来表示。
padval和direction分别表示填充方法和方向。
它们的具体值和描述如下:Padval选项:'symmetric'表示图像大小通过围绕边界进行镜像反射来扩展;'replicate'表示图像大小通过复制外边界中的值来扩展;'circular'图像大小通过将图像看成是一个二维周期函数的一个周期来进行扩展。
Direction选项:'pre'表示在每一维的第一个元素前填充;'post'表示在每一维的最后一个元素后填充;'both'表示在每一维的第一个元素前和最后一个元素后填充,此项为默认值。
若参量中不包括direction,则默认值为'both';若参量中不包含padval,则默认用0来填充。
若参量中不包括任何参数,则默认填充为零且方向为'both'。
在计算结束时,图像会被修剪成原始大小。
3 meshgrid()函数meshgrid用于从数组a和b产生网格。
生成的网格矩阵A和B大小是相同的,它也可以是更高维的。
该函数在使用matlab进行3-D图形的绘制方面有着广泛的应用。
[A,B]=Meshgrid(a,b),生成size(b)*size(a)大小的矩阵A和B。
A矩阵相当于a从一行重复增加到size(b)行,B矩阵相当于把b转置成一列再重复增加到size(a)列。
因此命令等效于A=ones(size(b))*a;B=b'*ones(size(a))实例:a=[1:2];a =12;b=[3:5]; b =345;[A,B]=meshgrid(a,b)A =1 21 21 2 B =3 34 45 54 find()函数find函数用于找到非零元素的索引和值。
1)ind = find(X)找出矩阵X中的所有非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量ind中。
如果X是一个行向量,则ind是一个行向量;否则,ind是一个列向量。
如果X不含非零元素或是一个空矩阵,则ind是一个空矩阵。
2)ind = find(X, k) 或ind = find(X, k, 'first')返回从前边开始数,前k个非零元素的索引值,k必须是一个正数,但是它可以是任何数字数值类型。
3)ind = find(X, k, 'last')返回从后边开始数,前k个非零元素的索引值,k必须是一个正数,但是它可以是任何数字数值类型。
4)[row, col] = find(X, ...)返回矩阵X中非零元素的行和列的索引值。
这个语法对于处理稀疏矩阵尤其有用。
如果X是一个N(N>2)维矩阵,col包括列的线性索引。
例如,一个5*7*3的矩阵X,有一个非零元素X(4,2,3),find函数将返回row=4和col=16。
也就是说,(第1页有7列)+(第2页有7列)+(第3页有2列)=16。
5)[row, col, v] = find(X, ...)返回X中非零元素的一个列或行向量v,同时返回行和列的索引值。
如果X是一个逻辑表示,则v是一个逻辑矩阵。
输出向量v包含通过评估X表示得到的逻辑矩阵的非零元素。
5 repmat()函数B = repmat(A,m,n)B = repmat(A,[m n])B = repmat(A,[m n p...])这是一个处理大矩阵且内容有重复时使用,其功能是将A的内容作为一个整体进行扩充,最终B矩阵包括m*n个A矩阵。
B矩阵的大小由m*n及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5例如:B=repmat([1 2;3 4],2,3)B =1 21 21 23 43 43 41 2 121 23 4 343 4其结果变为4X6。
repmat函数中的矩阵A也可以是字符串,例如:C=repmat(' Long live the king!', 2,2)C =Long live the king! Long live the king!Long live the king! Long live the king!也可置放其他的符号:D=repmat(NaN,2,5)D =NaN NaN NaN NaN NaNNaN NaN NaN NaN NaN6 MATLAB中的取整函数集合1)fix(x) : 截尾取整。
例如:fix([3.12 -3.12])ans =3 -32)floor(x):不超过x 的最大整数(高斯取整)。
例如:floor([3.12 -3.12])ans =3 -43)ceil(x) : 大于x 的最小整数。
例如:ceil([3.12 -3.12])ans =4 -34)四舍五入取整。
例如:round([3.12 -3.12])ans =3 -37 prod()函数1)B = prod(A)求矩阵A每一列的元素的乘积。
如果A是向量,prod(A)返回A向量所有元素相乘的乘积。
如果A是矩阵,prod(A)将A看作列向量,返回每一列元素的乘积并组成一个行向量B。
如果A是多维数组,prod(A)沿着第一个非单例作为向量,返回一个行向量数组。
2)B = prod(A,dim)沿着指定的dim标量的维计算A矩阵的乘积。
注:dim=2表示沿行计算。
例如:M = magic(3)M =8 1 63 5 74 9 2prod(M) =96 45 84prod(M,2) =48105728 median函数median的作用:求矩阵中值。
1)median(M),每一列返回一个值,M为该列的从大到小排列的中间值.2)median(M,dim),dim的值为1或2,其中1表示按每列返回一个值,为该列从大到小排列的中间值,而2表示按每行返回一个值,为该行从大到小排列的中间值。
3)注意:如果行或列的个数为偶数,返回中间两个值的平均值。
9 求余函数rem和modrem(x,y) & mod(x,y)如果x和y的符号相同(同为“+”或者同为“-”),那么rem(x,y)=mod(x,y);如果x和y的符号相反,当得到的余数结果的符号希望跟除数x一样,用rem()函数,当得到的余数结果的符号希望跟被除数y一样,用mod()函数。
10 bwmorph函数本函数用于对二值图像进行数学形态学操作。
1)bw1=bwmorph(bw,operation)对二值图像应用形态学操作;2)bw2=bwmorph(bw,operation,n)对二值图像可以应用形态学操作n次,n可以是inf,代表该操作执行到图像不再发生变化为止。
3)operation字符串:1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序。
eg: A=[1,5,3],则sort(A)=[1,3,5]A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3]2)B=sort(A,dim),对数组按指定方向进行升序排序。
dim =1,表示对每一列进行排序,dim=2表示对每一行进行排序。
3)B=sort(A,dim,mode),其中mode为指定排序模式,mode为"ascend"时,进行升序排序,为"descend "时,进行降序排序。
4)[B,I]=sort(A,.....),I为返回的排序后元素在原数组中的行位置或列位置。
12 计算结果可视化函数大全1)plot函数的用法plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。
也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:①plot(x),当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。
当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就有n 条曲线。
②plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。
③plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。
④在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专门提供了这方面的参数选项,我们只要在每个坐标后加上相关字符串,就可实现它们的功能。
例:plot(x,y1,‘r+-’,x,y2,‘k*:’);2)图形修饰函数①grid on (/off) 给当前图形标记添加(取消)网络;②xlable(‘string’) 标记横坐标;③ylable(‘string’) 标记纵坐标;④title(‘string’) 给图形添加标题;⑤text(x,y,’string’) 在图形的任意位置增加说明性文本信息;⑥gtext(‘string’) 利用鼠标添加说明性文本信息;⑦axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值;3)图形的比较显示函数在一般默认的情况下,MATLAB 每次使用plot函数进行图形绘制,将重新产生一个图形窗口。
但有时希望后续的图形能够和前面所绘制的图形进行比较。
一般来说有两种方法:①采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;②采用subplot(m,n,k)函数,将图形窗口分隔成m*n个子图,并选择第k 个子图作为当前图形,然后在同一个视图窗口中画出多个小图形。
子窗口的序号按行由上往下,按列从左向右编号。