matlab

非整数要想转换成整数可以使用int8()、int16()、int32()、int64()、以及uint64()等进行转换。

下面是几种取整函数:

round()四舍五入、floor()向下取整、ceil()向上取整。

matlab默认是使用双精度浮点型,占用8个字节长度,其中第63为是符号位,0到51位表示小数部分,52位到62位表示指数部分。

可以直接采用赋值语句(i或j)产生复数,也可以使用complex(a,b),产生a为实部、b为虚部的复数。

real(z)得到实部、imag(z)得到虚部、abs(z)得到模、angle(z)得到弧度制下的角度、conj(z)得到共轭复数。

注意:format函数仅仅是改变数据的显示格式,不会改变数据的值。默认是formatshort,即保留小数点后四位,还有其他格式(比如显示小数点后更长的位数、分数形式以及科学计数法)可以用help命令查看文档,helpformat。

formatrational比较常用以分数的形式显示。

true和false分别代表逻辑真和假,matlab中真假分别用1和0表示。true(3,4)表示生成一个3行4列的逻辑值数组。

可以使用logical()函数将一个数值转换成逻辑型。

在matlab中不区分字符和字符串,都用char表示,都用单引号括起来,matlab支持中文字符。

函数句柄也是一种数据类型。例如f=@cos,可以通过创建函数句柄来实现对函数的间接调用。f(3.1415)输出为:-1。

单元数组支持下标索引,索引从1开始,如a{1,1}表示访问第一行第一列的元素。也可以用索引的方式为单元数组的元素赋值。

c=cell(3,4)表示创建一个单元数组,之后可以用索引的方式为单元数组的元素赋值。

celldisp(c)显示单元数组所有元素的值。

单元数组转结构体,s=cell2srtuct(c,fields,2),其中c为单元数组,fields为结构体内的成员变量名,2表示维度。用的时候可以用:help查看具体的语法细节。

matlab的基本运算符包括有+、-、*、/左除(我们一般意义上的除法)、\右除(前面是除数后面是被除数)、^幂运算、‘转置。在进行矩阵运算时,前面加点表示对应元素进行运算,前面没有点号则进行矩阵的加减乘除。

关系运算符返回bool,注意matlab的不等于是~=,当关系运算符两边都是向量或矩阵时,维度必须相等,否则报错。

另外几个小技巧:

1.判断两个浮点数是否相等,因为浮点数有精度问题,直接比较容易得到错误结果,故采用abs(a-b)<1e-10的方式来进行比较。

2.筛选矩阵中满足条件的元素,result=A>0.5,矩阵A中大于0.5的元素返回1,其余是0。

与、或、非。符号表示为:&、|、~。函数表示为:and、or、not、xor异或。比如:and(1,0)返回0,or(1,0)返回1。

还有个快速逻辑与、快速逻辑或,它与上面的区别是:当判断第一个操作数可以决定整体逻辑时,不再往下进行运算,比如0&&1,当第一个操作数为0时无论后面怎么样,结果一定是0,就不往下进行运算了。

按位逻辑运算符:按位与:bitand(a,b),传入的a和b都是十进制数,先转换成二进制,再对每一位进行逻辑运算,最后得到一个二进制数,转换成十进制即为返回的结果。同样还有按位或bitor(a,b)、按位非bitnot(a)、按位异或bitxor(a,b)。

matlab中默认的常量有:

matlab变量命名规则:

方括号包裹,逗号分割表示在一行,分号分割表示另起一行。索引下标从1开始。

比如:A和B是两个3行3列的矩阵

[A,B]是横向拼接,得到3行6列的矩阵

[A;B]是纵向拼接,得到6行3列的矩阵

还有几个拼接的函数:

常见的生成方法:

1.通过函数repmat(),A=repmat(B,m,n)表示将B看作单个对象,生成一个m行n列的大矩阵,A=repmat(B,m)表示将B看作单个对象,生成一个m行m列的大矩阵。

2.通过函数blkdiag(),A=blkdiag(B,C...)生成一个B、C...构成的准对角矩阵。

比如:通过函数imread()读取图片,得到图像数据的二维矩阵。

矩阵是按列来进行存储的,索引时要注意,例如:A=[1,2,3;4;5;6]。A(2)返回的是4,A(2,3)返回第2行第3列的元素6。

矩阵的下标索引支持所谓的切片操作,A(1:end,end)可以获取最后一列,运用好切片操作可以很灵活的得到分割后的矩阵。

注意:

前面讲过,主要是一些技巧

一些技巧:

介绍一些常见的判断函数函数:

size()返回二维数组的行数和列数。

length()返回一维数组的长度,如果是二维数组返回max(行数,列数)

ndims()返回数组的维数

也可以用一行命令whos来查看所有的变量,whos给出的信息很多,有类型、大小、占用字节数等等。

find()函数,括号内放逻辑表达式,返回逻辑表达式为真对应元素的下标。

find(A>0.5),返回A中大于0.5的元素所在下标,常用于给满足条件的元素进行赋值操作,非常常用。

直接find(A>0.5)返回单下标。[i,j]=find(A>0.5)返回双下标,i为行,j为列。

如果有多个下标符合,则返回的是这些下标组成的列向量。

用的最多的的是采用空矩阵[]的方法进行删除操作

A([13],:)=[],表示删除矩阵的第一行和第三行

A(:,end)=[],表示删除矩阵的最后一列

常用的方式是使用’来进行转置,但是如果矩阵中含有复数时,得到的其实是先转置再共轭的结果。

使用transpose(A)来进行转置,是真正的转置,即便矩阵有复数存在,也不会进行共轭操作。

rot90(A)将矩阵逆时针旋转90°

rot90(A,k)将矩阵逆时针旋转k×90°

fliplr(A)进行左右翻转。flipud(A)进行上下翻转。

filpdim(A,1)相当于flipud(A),filpdim(A,2)相当于fliplr(A)。

B=reshape(A,m,n)实现尺寸的改变,本质分为两步,先将矩阵展开(注意是先列后行)成向量,向量再生成矩阵(仍是先列后行)。

一般来说,是升序排序。添加’descend‘可变为降序。

如果传入的是一个一维的向量,毫无疑问直接排序,如果传入的是一个二维矩阵,那么默认情况下,会按列为单位进行操作(每一列都作为一个向量进行sort,之后把这些排好序的列合成原尺寸的矩阵);若指定dim=2即sort(A,2),则按行为单位进行操作。

sum(A)函数,对矩阵的每列求和返回一个行向量。

cumsum(A)函数。累计求和,也是按列为单位进行,返回与原来尺寸相同的矩阵。

它们都有一个dim参数,当dim值为2时,按行进行。比如:cumsum(A,2)表示以行为单位进行累计求和。

如果要求所有元素的和,则用sum(sum(A))。sum()函数,当参数为行向量或列向量时,返回行或列求和的结果。

与上面的求和类似,只不过将函数名换作prod和cumprod。

B=diff(A)以列为单位求一阶差分

B=diff(A,N)以列为单位求N阶差分

B=diff(A,N,2)以行为单位求N阶差分

通过函数det(A),来求一个方阵的行列式。

eig(A)函数。

E=eig(A):求矩阵A的全部特征值,组成向量E。

[V,D]=eig(A):方阵V的每一列为一个特征向量,方阵D为对角矩阵,对角线上的每一个元素为特征值(特征值在对角线上按照从小到大的顺序排列)。

知识拓展:前面介绍了伴随矩阵,p为多项式的系数向量,高次幂在前、低次幂在后。A=compan(p),再解得A的特征值即为多项式方程的根。

diag(A)获取矩阵A主对角线上的元素,组成一个列向量。

diag(A,k)获取矩阵A第k条对角线上的元素,组成一个列向量。主对角线k=0,之后第一条对角线指主对角线右上方的第一条对角线,第k条类似推。

上三角矩阵,对角线左下方的所有元素都为0;下三角矩阵,对角线右上方的所有元素都为0。

triu(A)获取上三角矩阵

triu(A,k)获取第k条对角线(包括)之后的上三角矩阵

tril(A)获取下三角矩阵

tril(A,k)获取第k条对角线(包括)之后的下三角矩阵

inv(A)求矩阵A的逆矩阵

pinv(A)求矩阵A的广义逆矩阵。

知识拓展:广义逆矩阵:如果A不是一个方阵或者是一个非满秩的方阵时,它没有逆矩阵,但是可以找到一个与A的转置同型的矩阵B满足

此时称B为A的伪逆,也叫广义逆矩阵。

rank(A)求矩阵A的秩

J=jordan(A),求约当标准型J。

[V,J]=jordan(A),得到的V和J满足:J=V-1*A*V

trace(A)求矩阵A的迹。

矩阵的迹等于对角线元素之和,也等于其特征值之和。

norm(A)或norm(A,2)求矩阵A的2阶范数,即矩阵的最大奇异值。

norm(A,1)求矩阵A的1阶范数,即矩阵的列向元素和的最大值。

norm(A,inf)求矩阵A的无穷阶范数,即矩阵的行向元素和的最大值。

通过函数orth()求一个矩阵的标准正交基。

B=orth(A),矩阵B的列向量组成了矩阵A的一组标准正交基。

sqrtm(A)用于计算矩阵的平方根

logm(A)用于计算矩阵的自然对数

expm(A)用于计算矩阵的指数

funm(A,@sin)用于计算矩阵的超越函数值,第二个参数用于指定函数的句柄

有以下几种方式:

full(A)将一个稀疏矩阵转化为普通矩阵。

nnz(A)计算稀疏矩阵中非零值的个数。

spy(A)对稀疏矩阵中非零元素的分布进行图形化的显示。

issparse(A)判断一个矩阵是否为稀疏矩阵。

nonzeros(A)矩阵中非零元素值。

syones(A)将稀疏矩阵中的非零元素替换为1

对于正定矩阵,可以分解为上三角矩阵和下三角矩阵的乘积,这种分解叫做Cholesky分解。能够进行Cholesky分解的矩阵必须是正定的,矩阵的所有对角元素必须是正的,同时矩阵的非对角元素不能太大。

通过chol()函数进行矩阵的Cholesky分解。B=chol(A),则B‘*B=A。

将方阵A分解为下三角矩阵的置换矩阵L和上三角矩阵U的乘积。

[L1,U1]=lu(A)将矩阵分解为下三角矩阵的置换矩阵L1和上三角矩阵U1。A=L1*U1。

[L2,U2,P]=lu(A)将矩阵分解为下三角矩阵L2和上三角矩阵U2,以及置换矩阵P。

QR分解将一个m行n列的矩阵A分解为一个正交矩阵Q(m行m列)和一个上三角矩阵R(m行n列)的乘积。

[Q,R]=qr(A),则Q*R=A。

S=svd(A),对矩阵A进行奇异值分解,返回由奇异值组成的列向量,奇异值按照从小到大的顺序排列。

[U,S,V]=svd(A),对矩阵A进行奇异值分解,其中U和V为酉矩阵,S为一个对角矩阵,对角线元素为矩阵的奇异值的降序排列。

[U,S]=schur(A)得到酉矩阵U和块对角矩阵S。

S=schur(A)得到块对角矩阵S。

H=hess(A),返回Hessenberg矩阵。

多项式的系数按照降幂的次序存放在向量中,称为多项式的系数向量。

下面给出几种多项式的建立方式:

多项式求值:

多项式求根:

利用roots(p)求取多项式的根。

已知多项式的根求多项式的系数:

先定义根向量r,然后p=poly(r)转换成系数向量p。

多项式乘法:

c=conv(a,b),其中a和b分别为两个多项式的系数向量,c是相乘结果的系数向量。

多项式的导数:

多项式积分:

部分分式展开:

[r,p,k]=residue(b,a),求多项式之比b/a的部分分式展开。其中r、p、k对应的系数向量如下:

a(x)对应的多项式无重根:

拟合还可以在figure窗口下的工具栏,直接进行图形化用户操作。

利用函数interp1()进行一维多项式插值。

利用函数interpft()进行一维快速傅里叶插值。

利用函数interp3()进行三维插值。

利用函数interpn()进行高维插值。

利用limit()函数求取函数f的极限:

函数f用符号来定义,比如:

symsxf=sin(x)/x

y=limit(f,x,0)

注意:趋于无穷大时,用inf做参数。

可以通过函数trapz(x,y)来求定积分。例如:

x=0:pi/1000:pi

y=sin(x)

trapz(x,y)

通过函数quad()进行求解:

匿名函数的用法举例:

dblquad(@(x,y)x+y,0,1,0,1)

dsolve()函数来求解常微分方程的符号解,其中Dy表示一阶微分项,D2y表示二阶微分项:

解常微分方程:

解常微分方程组:

数值解一般用的比较少,求常微分方程的数值解可用ode45(),具体参数及用法,用helpode45查看函数文档。

x=fminbnd(Fun,a,b),Fun为函数句柄,a和b为指定区间,返回的x为最小值所对应的自变量的取值。

[x,fval]=fminbnd(Fun,a,b),返回的x为最小值所对应的自变量的取值,fval为对应的函数值。

fminbnd()函数还可以指定options参数进行优化设置,并且可以显示迭代算法的计算过程,具体操作用help查看。

x=fminsearch(Fun,x0),其中需要指定一个起始点x0,返回局部最小值对应的自变量取值。

x=fminsearch(Fun,x0,options),指定options参数进行优化设置。

[x,fval]=fminsearch(Fun,x0),返回值fval为对应的函数值。

x=fzero(Fun,x0),指定一个起始点x0,返回零点对应的自变量取值,如果没有找到零点返回NAN。也可以指定一个区间x0,它是一个2维行向量。

x=fzero(Fun,x0,options),指定options参数进行优化设置。

[x,fval]=fzero(Fun,x0),返回值fval为对应的函数值。

使用syms命令,后面跟变量名,变量之间用空格隔开。

符号函数的建立方式:定义好符号变量,直接用一个变量f=符号变量构成的表达式,这样f就是一个符号函数。

符号方程的建立方式:

一些常用的方法:

查看一个符号表达式中的符号变量,使用symvar(f)。

factor(f)对符号变量多项式进行因式分解,如果不能分解返回本身。

expand(f)对符号表达式进行展开,可以展开多项式、指数、三角函数等等。

collect(f)对符号表达式中的同类项进行合并。

[a,b]=numden(f)获取符号表达式的分子和分母,a为分子,b为分母。

simplify(f)对符号表达式进行化简。

替换即求值,subs(f(x),x,2),第一个参数为符号表达式,第二个参数为替换的变量,第三个参数为替换的值,相当于求f(2)。对多个变量进行替换,用subs(f(x,y),{x,y},{3,4}),相当于求f(3,4)。

g=finverse(f),用于求一个函数的反函数。

compose(f,g),用于求复合函数,相当于f(g)。

符号矩阵中所有的元素都是符号变量,可以进行矩阵的加减乘除四则运算。

利用symsum(f,n,m)函数,进行级数求和。其中f为级数的表达式,n和m表示求第n项到第m项的和。

傅里叶变换:

拉普拉斯变换:

Z变换:

采用符号函数来进行图形绘制,图形更为圆滑一些。

fplot()函数:

ezplot()函数:

ezpolar()函数:

ezmesh()函数:ezmesh(f(x,y),domain),绘制f(x,y)的曲面,其中domain可以是4×1向量[xmin,xmax,ymin,ymax]或2×1向量[min,max](其中min

ezmeshc()函数:与ezmesh()函数用法和功能类似,只是在xOy平面多了等高线。

ezcontour()函数:与ezmesh()函数用法类似,专门用来绘制在xOy平面的等高线。

contour()函数:也可用于绘制等高线。通过指定其参数还可以标注等高线的高度。具体用法可以使用helpcontour来获取文档。例如:创建矩阵X和Y,用于在xOy平面中定义一个网格。将矩阵Z定义为该网格上方的高度。然后绘制Z的等高线。

代码如下:

其中meshgrid(x,y)用于生成二维坐标网格,在三维图形绘制中常用。

效果为:

ezcontourf()函数:与ezmesh()函数用法类似,专门用来绘制在xOy平面的等高线(而且与ezcontour()函数相比,图形的颜色被填充)。

ezsurf()函数:与ezmesh()函数功能和用法类似,绘制三维彩色曲面图。

ezsurfc()函数:与ezmesh()函数功能和用法类似,绘制三维彩色曲面图(带有等高线)。

在命令行窗口输入funtool来调用单变量符号函数计数器,操作简单方便。

在命令行窗口输入taylortool来调用泰勒级数逼近计数器,操作简单方便。

只有一个参数,plot(y):

两个参数,plot(x,y):

三个参数,plot(x,y,s):

多个参数,plot(x1,y1,s1,x2,y2,s2...):

同时在一个坐标系内绘制多条曲线,且可指定每一条线的样式。

subplot(m,n,p):

需要在已经绘制好的图形上添加新的图形,使用hold命令:

使用axis()函数:

其他命令通过help来获取。

使用grid命令:

图形的缩放可以只沿x轴方向,这个功能有时候可能有用。使用zoom命令,有需要的时候可以使用helpzoom进行查看。

使用函数polar():

拓展:在matlab中极坐标和直角坐标下的坐标可以相互转换。pol2cart()将极坐标转换为直角坐标,cart2pol()将直角坐标转换为极坐标。

有时候想把两个曲线显示在同一个坐标系内,但是由于单位长度的问题导致如果显示了其中一个就看不到另一个的变化趋势了,比如:同时绘制指数函数和正弦函数。这时就要采用双y轴来进行绘制了。使用函数plotyy()。

在figure窗口下的工具栏可以实现添加文字、添加箭头、设置线型等等很多操作,操作比较简单,不多赘述。

显示颜色条:常用于三维绘图和二维等高线绘图中,通过命令colorbar来进行添加。

添加文本框:文本用于对图形的说明,一般通过figure窗口来进行操作,因为比代码方便。

特殊图形绘制,包括柱状图、饼状图、直方图、散点图等等。

利用bar()函数:

还可以绘制水平方向的柱状图,使用函数barh(),用法与bar()函数相同。

利用pie()函数:

利用hist()函数:

利用scatter()函数:

火柴杆图常用于信号与系统中离散序列的绘制,使用stem()函数:

向量场图使用quiver()函数进行绘制:

quiver(X,Y,u,v)用于绘制向量场图,X、Y为[X,Y]=meshgrid(x,y)网格化后的两个矩阵,u、v为对应位置的向量场分量。

效果如下:

函数plot3()用法如下:

三维网格图:

常用两个函数:

另外,使用meshc()可以绘制带等高线的三维网格图、meshz()绘制带有底座的三维网格图。用法与mesh()类似。

三维曲面图:

函数surf()绘制三维曲面图:

另外,使用surfc()可以绘制带等高线的三维曲面图。

经常用于绘制旋转体,使用函数cylinder()生成坐标:

使用函数sphere()来生成球面坐标:

使用函数contour3()来绘制三维等高线:

使用函数bar3():

使用函数bar3h()绘制水平方向上的三维柱状图。

使用函数pie3():

使用方法与二维函数pie()相同,都是传一个x向量,用explode参数指出突出显示的部分。

使用函数scatter3():

scatter3(x,y,z),x、y、z为三个维度相同的向量,会以(x(i),y(i),z(i))为第i个散点的坐标,一共绘制length(x)个散点。

使用函数stem3():

stem3(x,y,z),与scatter3()函数用法一样,只不过在散点的基础上增加了火柴杆。

使用函数quiver3():

建议在figure窗口下,用鼠标拖动来设置视角,不建议用代码操作,代码太麻烦而且机械。

利用函数mesh()绘制三维网格图时,默认隐藏三维图形中被遮挡的部分,可以使用hiddenoff命令来透视看到被隐藏的部分,效果如下:

使用colormap命令,具体颜色类型可以使用helpcolormap查看文档。

在matlab中,m文件有两种类型,脚本和函数,都是以.m作为后缀名。m文件为普通ASCLL文件,可以采用文本编辑器来编辑。

脚本文件中的变量都为全局变量,这些变量保存在matlab基本工作区中。为了避免变量名相同引起冲突,一般在脚本文件的开始使用clearall命令。

函数采用的参数传递方式为值传递,将变量或常量的值传递给函数形式参数指定的变量,函数在经过计算后,将返回值传递回基本工作区,函数工作区中的变量被清除。

在matlab中,nargin的值为输入参数的个数,nargout的值为输出参数的个数。可以用if-else语句配合这两个参数,实现不同输入参数、不同输出参数函数行为不同的效果。

最为常用,程序从上到下依次执行每条语句。

if-end语句,示例如下:

1ifa>=b2a=b;3endif-else-end语句,示例如下:

xxxxxxxxxx61%rem(a,b)函数为求余运算2ifrem(a,2)==03disp('偶数');4else5disp('奇数');6endif-elseif-else-end语句,示例如下:

xxxxxxxxxx91x=94;2ifx>903disp('优秀');4elseifx>805disp('良好');6elseifx>607disp('及格');8else9disp('不及格');switch-end语句,示例如下:

xxxxxxxxxx101switchx2case13disp('x=1');4case25disp('x=2');6case{3,4,5}7disp('x=3,4,5');8otherwise9disp('x为非1到5的数字');10end8.2.3循环结构for循环语句:

x1%使用for循环2fori=1:103x(i)=i^2;4end56%使用向量、矩阵运算7j=1:10;8y=j.^2;比较推荐用向量和矩阵运算来代替循环,因为这样计算效率比较高。

另外,循环还支持嵌套,例如:

xxxxxxxxxx61x=zeros(5,5);2fori=1:53forj=[1,2,3,4,5]4x(i,j)=i*j;5end6endwhile循环语句:

xxxxxxxxxx71x=1:10;2i=1;3sum=0;4whilei<=length(x)5sum=sum+i;6i=i+1;7end此外,matlab中也有break语句和continue语句,与C中用法相同,break用于退出一层循环,continue用于退出本次循环。

在每个函数m文件的第一行定义的函数就是主函数。一个函数m文件只有一个主函数,其函数名与文件名相同。

在同一个函数m文件下,主函数后面可以定义一些子函数,当主函数里面用到子函数时,可以对其进行调用。当外部的一些主函数与内部定义的子函数重名时,优先使用内部定义的子函数,这个现象也叫做函数的重载。另外注意:子函数只能被在同一个m文件下的主函数或其他子函数调用。

示例如下:

xxxxxxxxxx121functiony=mymaxmain(x1,x2)2%主函数3%输入x1和x2均为向量4%返回y为标量5y1=mymax(x1);6y2=mymax(x2);7y=max(y1,y2);8end910functionz=mymax(x)11z=max(x);12end8.3.3匿名函数匿名函数定义的语法格式为:f=@(参数列表)返回的表达式。

匿名函数可以返回多个值,示例如下:

xxxxxxxxxx31f=@(x)[max(x),min(x)];2x=[1,3,5,7,9];3f(x)多重匿名函数,示例如下:

xxxxxxxxxx31f=@(a,b,c)@(x)a*x^2+b*x+c;2f1=f(1,2,3);%f1仍为一个匿名函数,相当于f1=@(x)x^2+2*x+33f1(3)8.3.4函数句柄函数句柄简单理解就是一个名字,示例如下:

xxxxxxxxxx21f=@cos;2f(3.1415)函数句柄有许多好处,最常用的好处就是可以配合匿名函数实现一个函数的快速定义。

在脚本执行的过程中,常用keyboard对程序进行调试。在代码运行的时候遇到keyboard,程序会进入命令行模式,此时用户可以对变量的值进行查看或修改,待点击继续后,代码恢复继续向下执行。它的相当于一个断点。例如:

xxxxxxxxxx41a=[1,2,3;4,5,6];2b=[2,4,6;8,10,12];3keyboard;4a+b8.4.2pause程序运行到pause语句会停止,当按任意键后,程序继续向后执行。常用于动态的画图演示。示例如下:

xxxxxxxxxx101x=0:0.1:2*pi;2y=sin(x);3figure;4plot(x,y);5holdon;6fori=1:67pause;8plot(x,sin(x+i/5));9holdon;10end9.概率与数理统计9.1随机数的产生9.1.1二项分布随机数使用函数binornd()产生二项分布随机数。

使用函数poissrnd()产生泊松分布随机数。

unidrnd()产生离散型均匀分布随机数。

使用函数normrnd()产生正态分布随机数。

使用函数y=poisspdf(x,lambda)产生泊松分布概率密度函数。用法与上面二项分布相同。

使用函数y=geopdf(x,p)产生参数为p的几何分布概率密度函数。

使用函数y=unidpdf(x,N)产生离散型均匀分布的概率密度函数。

使用函数y=unifpdf(x,a,b)产生[a,b]上均匀分布的概率密度函数。

使用函数y=chi2pdf(x,nu),产生卡方分布的概率密度函数。

使用函数y=tpdf(x,nu),产生t分布的概率密度函数。

使用函数Y=fpdf(X,V1,V2),产生F分布的概率密度函数。

y=mean(x),对向量x中的元素求算术平均值。如果x为一个m×n的矩阵,对矩阵的每一列求平均值,返回1×n的向量。y=mean(x,2)对矩阵的每一行求平均值,返回m×1的向量。

y=nanmean(x),忽略NAN求算术平均值。其他用法与mean()函数相同。

y=geomean(x),计算几何平均数。

y=harmmean(x),计算调和平均数。

几何平均数:

y=nanmedian(x),忽略NAN计算中位数。

y=sort(x),对向量x的元素进行从小到大排序。如果x是一个矩阵,默认按列进行排序,y=sort(x,2)按行进行排序。指定descend从大到小排序。

y=range(x),求向量最大值与最小值之差。如果是矩阵默认按列进行,y=range(x,2)按行进行。

y=minmax(x),求向量的最小值和最大值。如果是矩阵,只能按照行进行操作。不支持2个参数。

y=mean(x),计算样本数据的期望。如果x是矩阵,则按列进行操作。

y=var(x),计算样本数据的方差。

y=std(x),计算样本数据的标准差。

注意样本数据的方差为:

[E,Var]=unifstat(a,b),计算[a,b]上均匀分布的期望和方差。

[E,Var]=normstat(mu,sigma),计算正态分布的期望和方差。不过正态分布的期望与方差根据参数显然能看出来,一般不用这个函数求。

[E,Var]=expstat(lambda),计算指数分布的期望和方差。

[E,Var]=tstat(nu),计算t分布的期望和方差。

[E,Var]=fstat(V1,V2),计算F分布的期望和方差。

样本协方差:

使用函数T=tabulate(X),X为一个正整数向量,返回值包含3列,第1列为正整数值,第2列为出现次数,第3列为频率。

使用函数histfit(data,n),其中data为样本数据构成的向量,n为直方图的组数。

THE END
1.MATLAB期末复习笔记(二)①函数文件是另一类m文件,可以像库函数一样方便地被调用,MATLAB提供的许多工具箱,是由函数文件组成的。 ②对于某一类特殊问题,用户可以建立系统的函数文件,形成专用工具箱。 ③函数文件的第一行有特殊的要求,它必须遵循如下的形式: function<因变量>=<函数名>(<自变量>) ...http://www.mynw.cn/news/268317.html
2.matlab画图技巧ranjiewenmatlab 画图技巧 基本画图工具:matlab 画图中线型及颜色设置 matlab中坐标轴设置技巧 **Matlab中的坐标轴设置技巧** axisoff;%去掉坐标轴axistight;%紧坐标轴axisequal;%等比坐标轴axis([-0.1,8.1,-1.1,1.1]);% 坐标轴的显示范围x = -pi/2:0.01:pi;plot(x,sin(x))% 先绘制个基本图形% gca: gca, h=...https://www.cnblogs.com/ranjiewen/p/6850451.html
1.《数字图像处理基础》学习07图像几何变换之最近邻插值法放大图像则思路正确,直接用自己的思路编写matlab程序去处理读取的图像,下面的解题思路可以选择跳过。 1,解题思路 从之前的概念中就已经可以用手算出g。 例如: 首先根据放大原始图像 的行列倍数创建一个放大后的图像矩阵 原始图像 第 行第 列的像素值会跑到放大图像 ...https://blog.csdn.net/weixin_53046747/article/details/144103491
2.用python中的MATLAB画图片堆叠的效果用Python与MATLAB合作实现图片堆叠效果 在数据可视化领域,图片的堆叠效果常用于展示多组数据之间的比较。本文将介绍如何利用Python配合MATLAB实现图片的堆叠效果,通过简单的代码示例,让你轻松上手。 引言 在数据分析过程中,我们经常需要将多幅图片进行对比展示。MATLAB以其强大的图形处理能力而闻名,而Python则被广泛应用于数...https://blog.51cto.com/u_16213358/12700176
3.如何在MATLAB中画多条曲线六、总结 在MATLAB中,绘制多条曲线非常简单。我们可以使用plot函数和一些其他的函数来实现在同一张图中绘制多条曲线。同时,我们还可以通过添加额外的参数和自定义曲线的颜色和样式来使图形更加美观和易读。 阅读剩余 32%https://www.506064.com/n/187668.html
4.数学建模基础教程!matlab算法编程数学神经网络3、实例计算、MATLAB求解拟合及预测,可直接用于论文 8 微分方程模型 传染病模型的经典公式、离散格式及其MATLAB编程求解 9 排队论模型 1、排队论基本构成与指标 2、排队论中的等待制模型及LINGO编程求解 3、排队论的计算机模拟与实例,MATLAB代码复制可用 https://www.163.com/dy/article/G55J0L0C0538057A.html
5.Matlab小技巧1:画图figure保留高清图片Matlab小技巧1:画图figure保留高清图片 技术标签:Matlabmatlab 查看原文 MATLAB如何保存仿真高清图片!(matlab) MATLAB如何保存仿真高清图片!(matlab)1.先打开你的fig文件:2.在命令窗口输入: print -f1-djpeg -r600 mypic 并回车,图片就保存到与fig文件的同文件夹中。 f1:你文件的名字,比如你的文件名是:Figure1,...https://www.pianshen.com/article/26651621366/
6.一文搞懂Matlab画图那些事(上篇)腾讯云开发者社区这里博主整理合并关于画图那些命令,只为让你轻松搞定Matlab画图这些琐事,那么,来吧!说明:本博文主要是二维图形的绘制,二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。https://cloud.tencent.com/developer/article/1011630
7.计算机学习心得(20篇)这次的学习让我思考了一些东西,也学到了一些东西,这也让我发现,自己还有很多东西需要学习,自己的教学还有很多需要改进的地方,对于本门课程来说,我也还有很多东西不知道,许多操作windows的技巧方法以及原理知识不太清楚,作为一名人民教师,为了更好的培育学生,指导学生,自己还有需要不断的'充实自己不断的改进自己,渊博的...https://www.unjs.com/fanwenwang/xdth/20230302120800_6568217.html
8.Matlab几个常用的绘图颜色搭配推荐相关技巧使用matlab画图时,怎样才能调出顺眼的颜色呢?下面这篇文章主要给大家介绍了关于Matlab几个常用的绘图颜色搭配,文中通过图文介绍的非常详细,需要的朋友可以参考下 前言 matlab绘图时,经常使用的颜色对比明显,易于区分,但有时美观性欠佳,各颜色之间略显突兀,下面就精不就多,推荐几款常用的离散色系搭配。 https://m.jb51.net/article/257296.htm