MatLab 知识小结

时间:2019-05-12 12:57:11下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《MatLab 知识小结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《MatLab 知识小结》。

第一篇:MatLab 知识小结

MatLab 知识小结

matlab常用到的永久变量。ans:计算结果的默认变量名。i j:基本虚数单位。

eps:系统的浮点(F10a9Bg个oht): inf: 无限大,例1/0 nan NaN:非数值(N航a nmnb谢)pi:圆周率n(n=3.1415926..)。realmax:系统所能表示的最大数值。realmin: 系统所能表示的最小数值,nargin: 函数的输入参数个数: nargout:函数的输出多数个数

①matlab的所有运算都定义在复数城上。对于方根问题运算只返回处于第一象限的解。

⑦matlab分别用左斜/和右来表示“左除和“右除”运算。对于标量运算而言,这两者的作用没有区别:但对于矩阵运算来说,二者将产生不同的结果。

多项式的表示方法和运算

p(x)=x^3-3x-5 可以表示为p=[1 0 –3 5],求x=5时的值用plotval(p,5)也可以求向量:a=[3 4 5],plotval(p,a)函数roots求多项式的根 roots(p)p=[1 0-3 5];r=roots(p)由根重组多项式poly(根)q=poly(r)

real(q)有时会产生虚根,这时用real抽取实根即可

conv(a,b)函数 多项式乘法(执行两个数组的卷积)a=[1 2 3 4];b=[1 4 9 16];c=conv(a,b)多项式的加减法,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次

多项式除法 [q , r]=deconv(c , b)表示b/c q为商多项式,r为余数 多项式的导数 polyder(f)f=[ 2 4 5 6 2 1];s=polyder(f)

多项式的曲线拟合

x=[1 2 3 4 5];

y=[5.6 40 150 250 498.9];

p=polyfit(x,y,n)数据的n次多项式拟合 poly:矩阵的特征多项式、根集对应的多项式

x2=1:0.1:5;n取1时,即为最小二乘法

y2=polyval(p,x2);计算多项式的值(polyvalm计算矩阵多项式)plot(x,y,'*',x2,y2);grid on 最小二乘法 x=[1 2 3 4 5];

y=[5.6 40 150 250 498.9];plot(x,y,’*’),lsline

多项式插值(p158)

YI=interp1(x,y,XI,’method’)一维插值

(XI为插值点的自变量坐标向量,可以为数组或单个数。

method为选择插值算法的方法,包括:

linear(线性插值)cubic(立方插值)spline(三次样条插值)nearst(最近临插值)

例如:人口预测 year=1900:10:1900;

number=[78 91 105 „.每十年的人口数];

x=1900:1:2000;

y=interp1(year,number,x,’spline’);plot(year,numeber,’*’,x,y);grid on

一维博里叶变换插值使用函数interpft实现,计算含有周期函数值的矢量的傅里叶变换

然后使用更多的点进行傅里叶变换的逆变换,函数的使用格式如下:y=interpft(x,n)其中x是含有周期函数值的矢量,并为等距的点,n为返同等间距点的个数。

求解一元函数的最小值

y=fminbnd('humps',0.3,1)humps为一内置函数

求解多元函数的最小值

函数fminserch用于求多元函数的最小值。它可以指定一个开始的矢量,并非指定一个区间。此函数返回一个矢量为此多元函数局部最小函数值对应的自变量

纹理成图功能

由warp函数的纹理成图功能实现平面图像在空间三维曲面上的显示。将文件名为flowers.tif的图像分别投影到圆柱形和球星表面上 i=imread('flowers.tif');[x,y,z]=cylinder;

subplot(1,2,1),warp(x,y,z,i);[x,y,z]=sphere(50);subplot(1,2,2),warp(x,y,z,i);warp(x,y,z,i);

求函数的零点

求函数humps在[1,2]区间上的零点 fzero(‘humps’,[1,2]);

也可以给一个初始值 fzero(‘humps’,0.9);

对于多项式可直接由roots求其根 roots(‘4*x^3+……’);也可以用solve c=sym('c','real');x=sym('x','real');s=solve(x^3-x+c)

函数定积分

q=quadl(‘humps’,0,1)求humps函数在0 1区间上的定积分,也可以用quad语句

二重积分 首先计算内积分,然后借助内积分的中间结果再求出二重积分的值,类似于积分中的分步积分法。Result=dblquad(‘integrnd’,xin,xmax.,ymin,ymax)integrnd为被积函数的名称字符串

符号积分运算int(f)最精确的是符号积分法 计算s=∫12[∫01xydx]dy syms x y 中间为空格,不能为逗号 s=int(int(‘x^y’,’x’,0,1),’y’,1,2)引号可省略 vpa(s)显示s的值 内积分限为函数的二重积分 I=∫14[∫√y2(x2+y2)dx]dy 符号法I=vpa(int(int(‘x^2+y^2’,’x’,sqrt(y),2),’y’,1,4)

微分运算(diff)

微分是描述一个函数在一点处的斜率,是函数的微观性质、因此积分对函数的形状在小范围内的改变不敏感,而微分很敏感。—个函数的小的变化,容易产生相邻点的斜率的大的改变。由干微分这个固有的困难.所以尽可能避免数值微分.特别是对实验获得的数据进行微分。在这种情况,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分;或用另一种方法对点数据进行三次样条拟合,然后寻找样条微分,但是,有时微分运算是不能避免的,在MATLAB中.用函数diff汁算一个矢量或者矩阵的微分(也可以理解为差分)。a=[1 2 3 3 3 7 8 9];b=diff(a)一次微分 bb=diff(a,2)二次微分 实际上diff(a)=[a(2)-a(1),a(3)-a(2),„„,a(n)-a(n-1)] 对于求矩阵的微分,即为求各列矢量的微分,从矢量的微分值可以判断矢量的单调性、是否等间距以及是否有重复的元素。符号微分运算(diff)syms x t a f =cos(a*x)df =diff(f)由findsym的规则,隐式的指定对x进行微分

dfa=diff(f,'a')指定对变量a进行微分 dfa=diff(f,'a',3)三次微分

diff函数不仅作用在标量上,还可以在矩阵上,运算规则就是按矩阵的元素分别进行微分 syms a x A=[cos(a*x),sin(a*x),-sin(a*x),cos(a*x)];dA=diff(A)微分方程dsolve

在matlab中,符号表达式中包含字母D用来表示微分运算,D2,D3分别对应第二,第三阶导数,D2y表示d2y/dt2 把t缺省了

y=dsolve(‘Dy=f(y)’)单个方程,单个输出

[u,v]=dsolve(‘Du=f(u,v)’,’Dv=g(u,v)’)2个方程,2个输出

s=dsolve(‘Dx=f(x,y,z)’,’Dy=g(x,y,z)’,’Dz=k(x,y,z)’)

s.x s.y s.z 3个方程,架构数组

dsolve('Dx=-a*x')结果:C1*exp(-a*t)没给定初值,所以结果中含参变量 x=dsolve('Dx=-a*x','x(0)=1','s')结果exp(-a*s)给定了初值,独立变量设为s

计算多元函数的梯度

fx=gradient(f)f是一个矢量返回f的一维数值梯度,fx对应于x方向的微分。

[x,y]=meshgrid(-2:.2:2,-2:.2:2);z=x.*exp(-x.^2-y.^2);[px,py]=gradient(z,.2,.2);contour(z),hold on 画等值线 quiver(px,py)

matlab字符串运算 利用sym命令创建表达式

f=sym(‘cos(x)+sin(x)’)或 syms x , f=cos(x)+sin(x)diff(f)求其导数(也

f=diff(‘cos(x)+cos(y)’)

当字符表达式中含有多于一个的变量时,只有—个变量是独立变量。如果不告诉matlab哪一个变量是独立变量,则可以通过findsym命令询问 利用findsym命令查询独立变量 f=sym('sin(a*x)+b')

findsym(f,1)给出独立变量(一个变量,如果为2则给出2个变量)findsym(f)给出所有变量

符号表达式的化简和替换

collect函数 collect(f,v)表示将f表示为关于符号变量v的多项式形式,即关于v合并同类项,v缺省,则用findsym确定的缺省变量 syms x y

f=x^2*y+y*x-x^2-2*x+1 collect(f)得到(-1+y)*x^2+(y-2)*x+1 collect(f,y)

(x+x^2)*y+1-x^2-2*x

expand函数 expand(f)将f展开,写成和的形式 syms x

expand((x-1)^3)得

x^3-3*x^2+3*x-1

horner函数 horner(f)将f写成镶嵌套形式 syms x

horner(x^3-6*x^2)得

(-6+x)*x^2

factor函数 factor(f)将f转换成低阶有理多项式的乘积 syms x

f=x^3-6*x^2+11*x-6

factor(f)得到(x-1)*(x-2)*(x-3)simplify(f)函数 综合化简 simple(f)函数的最简形式 syms x

f=2*sin(x^2)+cos(3*x)

simple(f)如果不想看到中间过程,可z=simple(f)有时使用两次simple命令可以得到最简式

如果想知道哪个简化命令得到最后结果,可以加一个参数how [z,how]=simple(f)

符号表达式的替换 subs(f,new,old)f='a*x^2+b*x+c'

subs(f,'t','x')得到a*(t)^2+b*(t)+c subs是一个符号函数,返回一个符号变量

subexpr函数 有时matlab返回的符号表达式难以理解,用subexpr函数,可以将表达式中重复出现的子式用一个符号表示,从而简化表达形式 c=sym('c','real');x=sym('x','real');s=solve(x^3-x+c)a=subexpr(s)

得到

sigma

=

-108*c+12*(-12+81*c^2)^(1/2)a =

[ 1/6*sigma^(1/3)+2/sigma^(1/3)] [-1/12*sigma^(1/3)-1/sigma^(1/3)+1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))] [-1/12*sigma^(1/3)-1/sigma^(1/3)-1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))]

pretty函数有时也能起到同样的作用。Pretty(f)显示函数的习惯书写形式

线性方程组的求解

求解线性方程组,用反斜杠 a=hilb(3)b=[1 2 3]' ab

矩阵的特征值和特征向量

用eig(v,d)函数,[v,d]=eig(A);其中d将返回特征值,v返回相应的特征向量,缺省第二个参数将只返回特征值 syms a b c real A=[a b c;b c a;c a b];[v,d]=eig(A);

为了观察更清楚,使用以前学过的替换函数,这里不用默认的sigma,而改用M,显式的代替繁琐的表达子式 vv=subexpr(v);vs=subs(vv,'m','sigma')运行结果为

vs = [ 1, 1, 1] [-(c+(m)-a)/(c-b),-(c-(m)-a)/(c-b), 1] [-(a-(m)-b)/(c-b),-(a+(m)-b)/(c-b), 1]

再用m替换d中的表达子式 dd=subexpr(d);ds=subs(dd,’m’,’sigma’)运行结果为ds =

[(m), 0, 0] [ 0,-(m), 0] [ 0, 0, c+a+b] note 求特征值也可用以下命令

f=poly(A)poly函数 用来求A的特征多项式

d=solve(f)solve(f)函数用来求多项式的解

svd()函数 求矩阵的奇异值分解,将矩阵分解为两个正交矩阵和对角矩阵的乘积 a=sym(hilb(2))[u,s,v]=svd(a)

代数方程和方程组

代数方程的求解可用solve(f)命令,如果f不含=,matlab将给表达式置零。方程的未知量在默认的情况下由findsym决定或显式指出 syms a b c x

solve(a*x^2+b*x+c)以x为默认变量

solve(a*x^2+b*x+c,a)指定对a为变量

求含有等号的方程的解(一定要加单引号)

f=solve(‘cos(x)=sin(x)’)

x=solve('exp(x)=tan(x)')如果不能求得符号解,就计算可变精度解。求解方程组与单方程类似 解一个三元一次方程

v=solve('a*u^2+v^2','u-v=1','a^2-5*a+6')结果为v =

a: [4x1 sym] u: [4x1 sym] v: [4x1 sym]

一些常用的符号运算 极限运算limit

limit(f)求x到0的极限

limit(f,x,a)或limit(f,a)求x到a的极限

limit(f,a,’left’)limit(f,a,’right’)求x到a的左极限和右极限 limit(f,inf)求x趋于无穷的极限 符号求和symsum(s)

symsum(s)以默认的findsym决定的变量求和

symsum(s,v)以s中指定的变量v求和

symsum(s,a,b)symsum(s,v,a,b)从a到b的有限项求和

syms k n

symsum(k)从0到k求和

symsum(k,0,n-1)从0到n-1求和 symsum(1/k^2,1,inf)无限项求和 泰勒级数taylor(f)

taylor(f)表示求f的5阶talor展开,可以增加参数指定展开的阶数(默认式5),也可以对于多元函数指定展开的变量,还可以指定在哪个点展开 syms x t taylor(exp(-x))

taylor(log(x),6,1)在1点的6阶taylor展开

taylor(x^t,3,t)对t的3阶taylor展开 积分变换

fourier变换和逆变换fourier(f)fourier分析可以将信号转换为不同频率的正弦曲线。可对离散数据进行分析,也可对连续时间系统进行分析,特别在信号和图形处理领域。离散变换(DFT)作用于有限数据的采集,最有效的是快速fourier变换(FFT)F=fourier(f)独立变量x,返回关于参数w的函数

F=fourier(f,v)返回函数F关于符号对象v的函数

F=fourier(f,u,v)对关于u的函数f进行变换,而不是缺省的w,返回函数F是关于v的函数 syms t v w x fourier(1/t)

fourier(exp(-t)*sym('Heaviside(t)'),v)fourier(diff(sym('F(x)')),x,w)Fourier逆变换

f=ifourier(F)缺省独立变量w,返回关于x的函数对w进行积分 f=ifourier(F,v)返回函数f是关于符号对象v的函数,而不是缺省的x f=ifourier(F,u,v)是关于u的函数f进行变换,而不是缺省的x,返回函数f是关于v的函数

Laplace变换和逆变换laplace(f)应用于连续系统(微分方程)中,可以用来求解微分方程的初值问题 laplace(F)缺省独立变量t,缺省返回关于s的函数L

laplace(F,t)返回关于t的函数L,而不是缺省的s

laplace(F,w,z)对函数F的自变量w积分,返回关于z的函数L 逆变换

F=ilaplace(L)缺省独立变量s,返回关于t的函数F F=ilaplace(L,y)返回关于y的函数F,而不是缺省的t F=ilaplace(L,y,x)对函数L的自变量y积分,返回关于x的函数F Z-变换和逆变换ztrans(f)标量符号f的Z-变换

F=ztrans(f)缺省独立变量n,返回关于z的函数

F=ztrans(f,w)返回关于符号变量w的函数F,而不是缺省的z F=ztrans(f,k,w)关于k的符号变量作Z-变换返回关于符号变量w的函数 逆变换iztrans(F)f=iztrans(F)或(F,k)或(F,w,k)

符号绘图函数

符号函数简易绘图函数ezplot(f)f可以包含单个符号变量x的字符串或表达式,默认画图区间(-2pi,2pi),如果f包含x和y,画出的图像是f(x,y)=0的图像,缺省区间是-2pi

syms x t ezplot('t*cos(t)','t*sin(t)',[0,4*pi])绘制符号图像函数fplot(fun,lims,tol,’linespec’,n)其中lims=[xmin,xmax]或[xmin,xmax,ymin,ymax] tol为指定相对误差,默认0.001 ‘linespec’指定绘图的线型 n指定最少以n+1个点绘图

[x,y]=fplot(fun,lims,…)只返回用来绘图的点,并不绘图,可以自己调用plot(x,y)来绘制图形。syms x subplot(2,2,1),fplot('humps',[0,1])f='abs(exp(x*(0:9))*ones(10,1))' subplot(2,2,2),fplot(f,[0,2*pi])subplot(2,2,3),fplot('sin(1./x)',[0.01,0.1],1e-3)matlab绘图 二维图形的绘制

plot 在(x,y)坐标下绘制二维图像 支持多个x-y二元结构

plot3 在(x,y,z)坐标下绘制三维图形 loglog 在(x,y)对数坐标下绘制二维图形

semilogx 在x为对数坐标,y为线性坐标的二维坐标中绘图

semilogy 在x为线性坐标,y为对数坐标的二维坐标中绘图

plotyy 在有两个y轴的坐标下绘图

plot用法

plot(x,y,'--rs','linewidth',2,'markeredgecolor','k',...'markerfacecolor','g','markersize',10)plotyy用法

plotyy(x1,y1,x2,y2)以x1为标准,左轴为y轴绘制y1向量,x2为基准,右轴为y轴,绘制y2向量

plotyy(x1,y1,x2,y2,fun)用字符串fun指

定的绘

(plot ,semilogx,semilogy,loglog,stem)plotyy((x1,y1,x2,y2,fun1,fun2)t=0:pi/20:2*pi;y=exp(sin(t));

plotyy(t,y,t,y,'plot','stem')stem为二维杆图

[ax,h1,h2]=plotyy(„)返回左右两y轴的句柄(分别为ax(1)ax(2),以及在两坐标轴中生成的图形对象的句柄,分别为h1 h2 t=0:900;A=1000;a=0.005;b=0.005;z2=cos(b*t);z1=A*exp(-a*t);

[haxes,hline1,hline2]=plotyy(t,z1,t,z2,'semilogy','plot');axes(haxes(1))

ylabel('semilog plot')对数坐标 axes(haxes(2))ylabel('linear plot')set(hline2,'linestyle','--')其他二维图形绘图指令 bar(x,y)二维条形图 hist(y,n)直方图

histfit(y,n)带拟和线的直方图,n为

直方的个数 stem(x,y)火柴杆图 comet(x,y)彗星状轨迹图 compass(x,y)罗盘图 errorbar(x,y,l,u)误差限图 feather(x,y)羽毛状图

fill(x,y,’r’)二维填充函数 以红色填充

pie(x)饼图

polar(t,r)极坐标图 r为幅值向量,t为角度向量 t=0:0.1:8*pi;r=cos(3*t/2)+1/2;

polar(t,r),xlabel('polar 指令')quiver(x,y)磁力线图 stairs(x,y)阶梯图 loglog(x,y)对数图

semilogx semilogy 半对数图

matlab三维作图 plot3(x,y,z)三维线条图 t=0:pi/50:15*pi;

plot3(sin(t),cos(t),t,'r*')与plot相似 v=axis 返回各个轴的范围

text(0,0,0,'origin')在某个坐标点加入文字

plot3 增加维数可以一次画多个图,使所个二维图形眼一个轴排列

三维网线图的绘制 mesh(x,y,z)网格图

mesh(x,y,z,c)四维作图,(x,y,z)代表空间三维,c代表颜色维 mesh(…,’property name’,property

value,…)设置曲面各属性的值

[x,y,z]=sphere(12);

mesh(x,y,z),hidden off 曲面设置为透明

meshc(x,y,z)画网格图和基本的等值线图

meshz(x,y,z)画包含零平面的网格图 waterfall(x,y,z)与mesh一样,只是在效果上它的网格线只在x轴一个方向出现,呈瀑布状水线

两个变量的标量指令meshgrid(x)或meshgrid(x,y)(p179)

将两个一维向量生成两个二维向量,以便进行z=f(x,y)运算,算出z的所有值,z为x y的标量指令 [X,Y]=meshgrid(x)meshgrid(x,x)的简略式

[X,Y]=meshgrid(x,y)[X,Y,Z]=meshgrid(x,y,z)用于三维图形的绘制

[x,y]=meshgrid([-2:0.1:2]);z=x.*exp(-x.^2-y.^2);plot3(x,y,z)surf(x,y,z,c)着色表面图 surf(x,y,z)隐含着c=z surf(z)隐含着x,y的值为surf指令根据z的尺寸自动生成

surfc 画出具有基本等值线的曲面图 surfl 画出一个具有亮度的曲面图 shading flat 网线图的某整条线段或曲面图的某个贴片都着一种颜色 shading interp 某一线段或贴片上各点的颜色由线或片的顶端颜色经线性插值而得

曲面图不能设成网格图那样透明,但需要时,可以在孔洞处将数据设成nun

等高线的绘制

在二维空间绘制等高线contour contour(x,y,z,n)绘制n条等值线(n可省略)

contour(x,y,z,v)在向量v所指定的高度上绘制等高线(可省)

c=contour(x,y,z)计算等值线的高度值

c=contourc(x,y,z,n)计算n条等高线的x-y坐标数据

c=contourc(x,y,z,v)计算向量v所指定的等高线的x-y坐标数据 clabel(c)给c阵所表示的等高线加注高度标识

clabel(c,v)给向量v所指定的等高线加注高度标识

clabel(c,’manual’)借助鼠标给点中的等高线加注高度标识

三维空间绘制等高线contour3(x,y,z)[x,y,z]=peaks(30);contour3(x,y,z,16,'g')二元函数的伪彩图pcolor(x,y,z)是指令surf的二维等效指令,代表伪彩色,可与contour单色等值线结合画彩色等值线图 [x,y,z]=peaks(30);

pcolor(x,y,z);伪彩色

shading interp 颜色插值,使颜色平均渐变

hold on,contour(x,y,z,20,'k')...画等值线

colorbar('horiz')水平颜色标尺 c=contour(x,y,z,8);clabel(c)标注等高线

矢量场图(速度图)quiver

用于描述函数z=f(x,y)在点(x,y)的梯度大小和方向

[X,Y]=meshgrid(x,y)X,Y为Z阵元素的坐标矩阵

[U,V]=gradient(Z,dx,dy)U,V分别为Z对x对y的导数,dx dy是x y方向上的计算步长

quiver(X,Y,U,V,s,’linespec’,’filled’)U,V为必选项,决定矢量场图中各矢量的大小和方向,s为指定所画箭头的大小,缺省时取1,linespec为字符串,指定合法的线形和彩色,filled用于填充定义的绘图标识符

[x,y]=meshgrid(-2:.2:2,-1:.15:1);z=x.*exp(-y.^2);

[px,py]=gradient(z,.2,.15);contour(x,y,z);

hold on,quiver(x,y,px,py),axis image 多边形的填色fill(x,y,c)

c定义颜色字符串,可以是’r’,’b’等,也可以用RGB三色表示[r,g,b]值为0-1

图形的四维表现

第二篇:MATLAB知识总结

1、命令x=0:0.2:2中的赋值格式是matlab常用的变量赋值格式,其中0表示初始值,0.2表示增量,而2表示终止值。若数组x无规律可循,那么x赋值得逐一输入单个元素了,这时要使用赋值格式符“[]”,如x=[0 5 8 1]表示把0 5 8 1 赋值给变量x.2、命令y=x.^3中的“.”表示对数组x逐一操作而不是把数组看做一个整体进行操作,而“^”表示数组的幂指数即对数组进行相乘的操作。

3、假设要建立起始值为0,终止值为,间隔为0.1的数组x,那么用前三种方法创建x的具体命令为:

4.x=[0 0.1*pi

0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi] x=(0:0.1:1)*pi x=linspace(0,pi,10)如果没有10这个数字表示将[0, ]分成间距相等的100个点。而x=logspace(1,2,10)表示对数(lg)间距相等的十个点,如没有10这个数字,表示将在[10,102]之间产生对数间距相等的50十个点。

5.tic和toc用来记录时间。6.tic

A=[];

A=diag(5*ones(5,1))+diag(ones(4,1),1)+diag(ones(4,1),-1)

Toc 可用来做出一个矩阵。

7.学会掌握for——end的循环语句。

8.学会使用while-end循环语句,此语句适合适用于循环次数不确定情况下。只要表达式的值非零即为逻辑“真”,则程序就会一直循环下去。

9.循环终止问题,用break来实现。

10.调试程序时文件名是什么就在命令窗口输入什么,而且要先在第一行弄出红点才行。11.符号变量的创建用sym和syms,后者可创建多个符号变量。

12.创建符号方程用的格式为:equ=('方程'),千万不能用这种格式:equ=方程。13.数值矩阵的表现形式是约数,而符号型矩阵的表现形式是精确的。数值型变量和符号型变量之间不能直接运算,即使它们都可能是数字,得先把数值型变量转化为符号型变量。

14.一般来说,存储matlab文件时用字母来命名才能有效。15.创建一个符号型实数的一般格式为: x=sym(x,'real')Y=sym(y,'real')或者sym x y real;要想清除x的符号属性可使用以下命令:x=sym(x,'unreal')或syms x unreal 16,real(x)表示x实部,而imag(x)表示x的虚部,而conj(x)表示x的共厄复数。17.matlab运算中涉及到数值变量、字符变量和符号变量(级别按顺序一次增高)的运算,系统将各变量转化为最高级别的运算。

18.将其他类型的变量转化为符号型变量的格式为:s=sym(f),f不能是矩阵或者非法的表达式。

19.用s=int2str(x)可以将x转化为字符变量(存储字节大些)s,当x为有理数时,得四舍五入;当x为虚数时,将只对x的实部进行转换。

20.S=num2str(x)也是将x转化为字符变量s,只是对x无任何限制。21.将其他变量转化为数值变量:

1)x=double(s),如果s中含有非数值的符号,系统将给出错误的信息,当s为字符变量时,该命令将s转化为数值矩阵x。矩阵中的元素值为s中的相应字符的ASCII码值。

2)当s是一个包含非数字字符的变量时,str2num(s)命令将返回一个空矩阵s。

3)x=numeric(s)命令可将变量s转化为数值变量x,这里s既可以是字符变量也可以是符号变量,但s不能是矩阵,否则将出错误信息。

22.利用findsym命令可以找到符号表达式或者符号矩阵中的符号变量,并且符号变量以

23.Pretty将代数式A由机器格式转变为书写格式,在转化过程中,不会对A进行任何简化。

24.collect(A):按默认变量对表达式A进行降幂排列,默认变量是指由findsym确定的变量。

25.collect(A,v)按照指定变量v对表达式A进行降幂排列。26.expand(S):将表达式S展开。

27.horner(S):把符号表达式S展开为:ax(bx(cx···(dx+z)+e···)+f)+g.28.factor(S):把符号表达式S展成重叠式。

29.Simplify(S):用一般化简方法化简符号表达式S.但共有六种化简法,此种化简法常用,但不具精确性。

30.不定化简法:simple(S):用不定化简法化简符号表达式S。若S为矩阵,则返回结果为整个矩阵(而不是单个元素)的最简短表达式。

31.[R,HOW]=simple(S):用不定化简法化简表达式S,其中R为S的化简结果,HOW为对应结果所采用的化简方法或者转换方法。

32.combine(trig)用三角函数的运算性质对主对角代数式进行化简;

convert(exp):将代数式尽量转化为由ex、eix表示的指数形式。

convert(sincos):将代数式尽量转化为由sin(x)、cos(x)形式表示的式子。

convert(tan):将代数式尽量转化为由tan(x)形式表示的式子。

33.[n,d]=numden(S)用分子分母法化简符号表达式S。返回结果n为分子,d为分母。34.[Y,SIGMA]=subexpr(X,'SIGMA'):X表示待整理的符号表达式或者符号表达式的矩阵。

SIGMA:在整理过程中提出的各种因子将以矩阵的格式保存在名为SIGMA的变量中。Y:已提取各种因子后,将整理完毕的符号表达式或者符号表达式的矩阵保存在Y中。35:SS=subs(s,old,new):s为符号表达式,old为s中将要被代替的“旧”变量名,new是用来代替s中old的“新”变量名或代数式。(注意subs不但可以进行单一变量的代换,还可以同时进行多个变量的替换)

36.SS=subs(S)利用由函数或MATLAB工作空间中得到的具体值(无论是数值型还是字符型)来代替S中相应的所有变量。

37.SS==subs(s,new):用new来代替S中的自由符号变量。

第五章

微分:

1.diff(x,'v')可用来对变量'v'求导,diff(x,'v',n)是对变量‘v’求n阶导数。2.diff(X,N)按第一个非单元素集合的维计算X的N阶导数。积分:

不定积分:1.int(s);int(s,v)这两种格式都是求s的不定积分,求别在于:第一种调用格式以findsym(S)命令寻找到的变量为自变量,计算S的不定积分;而第二种调用格式则针对指定变量V进行不定积分运算。

定积分:int(S, v, a, b)其中S为表达式,v为指定变量,a为积分下限,b为积分上限。当a或b取inf或(-inf)时该命令计算的是广义积分。但是这只能得到一个具体的表达式,而使用numeric便可以得到一个值。求极限:

limit(S,v):其中S为表达式,v为指定变量。该命令的功能:用于求当v→0时的表达式S的极限值。

limit(S):其中S为表达式,该命令的功能:用于求当系统默认变量→0时的表达式S的极限值。

limit(F,x,a):该命令的功能:用于求当x→a时表达式F的极限值。

limit(F,x,a,'right'):该命令的功能:用于求当x→a时表达式F的极限值(即右极限值)。

limit(F,x,a,'left'):该命令的功能:用于求当x→a时表达式F的极限值(左极限值)。求级数:

symsum(S):以函数findsym(S)j决定的变量(比如说自变量为K),求K从0开始到k-1为止S的前K项和。

symsum(S,v):功能上,只不过指定变量为v。

symsum(S,v,a,b):求自变量V从a到b时S的和。经常和simple连用。级数展开:taylor(f):用于求f关于默认变量的5阶近似麦克劳林多项式。taylor(f,n):用于求f关于默认变量的n-1阶近似麦克劳林多项式。taylor(f,v):同上,只不过自变量为指定变量V.taylor(f,a): 前三种调用格式求出的结果均是关于自变量等于零的展开式,而该命令则可以求解函数f在自变量等于a处的泰勒展式。

多元函数泰勒级展开式:maple('readlib(mtaylor)');maple('mtaylor(f,v,n,w)')傅里叶展开式先建立个函数mfourier 1)函数的建立:function [a0,an,bn]=mfourier(f)

syms n x

ao=int(f,-pi,pi)/pi;

an=int(f*cos(n*x),-pi,pi)/pi;bn=int(f*sin(n*x),-pi,pi)/pi;dig命令:diag(v,k):当V是由n个元素组成的矢量时,该命令的返回值是阶数为n+abs(k)的方阵。其中对角线由矢量v的元素组成,其余元素由0组成。当k=0时,v为主对角线;当k>0时,v位于主对角线之上;当k<0时,v位于主对角线之下。diag(v):与dig(v,0)完全相同,把矢量v置于主对角线之上。

diag(A,k):其中A为矩阵。该命令返回值是由矩阵A的第k条对角线的元素所组成的列矢量。

diag(A):相当于diag(A,0),得到由矩阵A的主对角线元素所组成的列矢量。triu命令(抽取矩阵的上三角部分)triu(A):抽取矩阵的上三角部分组成一个新的矩阵,其余元素用0来填充。

triu(A,k):抽取矩阵的第k条对角线上的三角部分组成一个新的矩阵,其余元素用0填充。当k=0时,triu(A,0)与triu(A)功能完全相同,抽取矩阵A主对角线以上的三角部分;k>0抽取元素对应矩阵A主对角线以上、第k条对角线以上的部分,k<抽取元素对应矩阵A主对角线以下、第k条对角线以上的部分。tril命令(抽取矩阵的下三角部分):和triu相似。inv命令(矩阵求逆):inv(A):返回矩阵A的逆。det命令(求矩阵的行列式):det(A):返回矩阵A的行列式。

rank命令(求矩阵的秩):rank(A,tol):返回矩阵A的奇异值中大于误差tol的奇异值个数。

rank(A):同上,默认精度tol=max(size(A)*norm(A))*eps.null命令(求矩阵的零空间的正交基):Z=null(A):求矩阵A的零空间的正交基,它是由矩阵A的奇异值分解得到的。

Z=null(A,'r'):求矩阵A的零空间的正交基,它是由缩减行阶梯矩阵得到的并且A*Z=0。Colspace命令(求矩阵的列空间的基):Z=colspace(A):返回矩阵A的列空间的基,并且有size(Z,2)=rank(A)。

eig命令(求矩阵的特征值和特征矢量)E=eig(X):返回由方阵X的特征值组成的特征矢量。

[V ,D]=eig(X):返回方阵X的特征值矩阵D和特征矢量矩阵V,其中X、V、D满足XV=VD;特征值矩阵D是以X的特征值为对角线的元素生成的对对角矩阵;矩阵X的第k个特征值对应的特征矢量是矩阵D的第k列列矢量。只有这样才有XV=VD.svd命令(矩阵的奇异分解值)

S=svd(X):f返回由矩阵X的奇异值组成的矢量。jordan命令(求矩阵的约旦标准形)jordan(X):返回矩阵X的约旦标准形。[V,J]:jordan(X):除了返回矩阵X的约旦标准形J外,还给出了相似变换矩阵V,并有VA*V=J。

poly命令(求矩阵的特征多项式)

P=poly(X):若X为nxn的矩阵,则该命令返回X的特征多项式P。P为包含n+1个元素的矢量,是特征多项式的系数。Expm命令(求矩阵的指数形式)expm(X):用pade法计算ex。

一般代数方程的求解:solve(Equ):Equ为符号方程,该命令可以求Equ关于系统默认变量为自变量的符号方程的解。

solve(Equ,var):同上,但var为指定的自变量,求出的解是关于指定变量的解。solve('equ','equ',···,'equ')

[a1,a2,···,an]=solve('equ1','equ2',···,'equn','var1','var2',···,'varn')

最后两种调用格式相差无几,都是求代数方程组的解,只不过最后一种调用格式制定了自变量var1,var2,···,varn.事实上,var1,var2,···,varn可有可无,只是因为solvem命令只有当方程组的数目和自变量的数目相同时才能进行求解,并且解得的结果并不是按照solve命令括号中var1,var2,···,varn的顺序分别赋给a1,a2,··,an的,而是按照英文字母表的顺序依次赋给a1,a2,···,an。即当var1在所有变量中按字母表顺序排序时排在最后一个,那么在结果中an才是对应变量var1的解。

注意:lambertw是个函数(称为Lambert W 函数),lambertw(A)是指满足e=A这样的表达式所对应的值。

注意:当用表达式s1,s2···sn代替solve命令中的符号方程组equ1,equ2,···,equn时,就意味着所求的是以s1=0,s2=0,···,sn=0所构成的方程组的解。线性代数方程组的求解:

X=linsolve(A,B):求AX=B的解,返回X。常微分方程组的求解:

注意:Matlab中用D表示对变量求导数,Dy表示对y求一阶导数,Dny表示对y求n阶导数。因此,y''+2y'=x这一微分方程在Matlab中需描述为:D2y+2Dy=x.无初值条件的常微分方程:调用格式为:dsolve('equ')或desolve('equ','var')后者中“var”为指定变量。

有初值条件的常微分方程:dsolve('equ,''condition1,condition2,···,conditionn','var')dsolve('equ','condition1','condition2',···,'conditionn','var')求解常微分方程组:

dsolve('equ1','equ2',···,'equn','var')dsolve('equ1,equ2,···,equn','var')desolve('equ1','equ2',···,'equn','condition','condition1','condition2',···,'condition','var')desolve('equ1,equ2,···,equn','condition,condition1,condition2,···,condition','var')求解线性常微分方程组:使用这个函数: function y=dsolve(A)syms t real e=eig(A);%求变量的特征矢量。

[v,d]=eig(A);%求得A的特征值矩阵d和特征值矢量矩阵v y=exp(d*t)'*v;%求得线性齐次常微分方程组X'=AX的解。反函数和复合函数的求法:

g=finverse(f):返回值g是已知函数f的反函数(自变量由系统的默认变量确定)。若f为单符号变量(如x)的一个标量,那么g是一个涉及符号变量的标量,并且满足g(f(x))=x。

g=finverse(f,v):同上,但指定变量为v。该命令在f含有多个符号的情况下,求它关于某个变量的反函数时要比第一种调用格式显得明了了。求复合函数:

compose(f,g):返回值为f(g(y)),其中f=f(x),g=g(y)。compose(f,g,z):返回值为f(g(z)),其中f=f(x),g=g(y)compose(f,g,x,z):返回值f(g(z))且视x为f的自变量,即如果f=cos(g(z)txtxg(z)),则compose(f,g,x,z)返回值就是cos(),而compose(f,g,t,z),则返回值为cos()。

compose(f,g,x,y,z):返回值为f(g(z))且视x为f的自变量,视y为g的自变量。例如:xtyusin(zu)f=cos(),g=sin()则compose(f,g,x,y,z)返回值为cos(t),,而compose

sin(yz)(f,g,x,u,z)则返回为cos(t)。

第六章

傅立叶变换及其逆变换:

F=fourier(f):对自变量为x的表达式f(x)进行变换,返回值为F(w);当f是变量w的函数即f=f(w)时,则变量结果为F=F(t);如果变量表达式中没有t和x这两个变量,则该命令将对系统默认的变量进行傅立叶变换。

F=Fourier(f,v):指定了变量结果为变量v的函数。表现在计算过程中则公式变为:

F(v)=f(x)eivxdx。用MATLAB语言则可描述为:fourier(f,v)<=>F(v)=int(f(x)*exp(-i*v*x),x,-inf,inf)F=fourier(f,u,v):指定了要对函数表达式做关于变量u的fourier变换。对应此时的傅立叶变换公式为:F(v)逆变换:

f(u)eivudu。

f=ifourier(F):F为待进行傅立叶逆变换的代数表达式。该命令对F(w)实行傅立叶逆变换得到一个自变量为x的函数f(x)。如果F=F(x)则该命令将返回一个自变量为t的函数f(t).f=fourier(F,u)f=fourier(F,v,u)后两种调用格式中u,v的用法和fourier命令中的用法完全一致。拉普拉斯变换及其逆变换:

拉普拉斯公式:L(s)F(t)e0stdt。

L=laplace(F):F为待进行拉普拉斯变换的代数表达式,其默认变量为t,若p不含t。则针对系统默认的变量对表达式进行拉普拉斯变换,该命令返回的函数其默认自变量为s。如果F=F(s)那么该命令的返回结果为L=L(t)。该命令可用MATLAB语言描述为:Laplace(F)<=>L(s)=int(F(t)*exp(-s*t),0,inf)并且积分针对变量t进行。

L=laplace(F,t)指定返回结果L为自变量t的函数,而不是系统默认的S用MATLAB语言可以描述为:Laplace(F,t)<=>L(t)=int(F(x)*exp(-x*t),0,inf)。用公式可表示为:L(t)F(x)e0txdx。

L=laplace(F,w,z)与傅立叶变换的解是类似。

ci拉普拉斯逆变换:公式为:F(t)F=ilaplace(L)F=ilaplace(L,y)F=ilaplace(L,y,x)这些与傅立叶变换的解释类似。

L(s)ecistds

Z变换:公式为F(z)F=ztrans(f).F=ztrans(f,w)F=ztrans(f,k,w)

0f(n)zn。

和傅立叶变换解释差不多。f=iztrans(F)f=iztrans(F,k)f=iztrans(F,w,k)和傅立叶变换解释差不多.几个补充命令:

1、double(X):返回值是X的双精度型矩阵,通常在循环语句中或者判断语句中使用double命令。

2、poly2sym(C):返回值对应矢量C的多项式表达式,返回结果的默认变量是X。

Poly2sym(C,‘v’):只不过将变量X换成v.3、sym2poly(P)与2的命令功能相反:该命令返回的结果是一个行矢量,该式量的元素是多项式的系数。

4、ccode(s):返回符号表达式s的C语言编码形式。

5、sinint正弦积分函数:sinint(x)=int(sin(t)/t,t,0,x)

6、余弦积分函数cosint(x)=Gamma+log(x)+int((cos(t)-1),t,0,s).其中Gamma是欧拉常数,为:=0.577215664901···

7、zeta(z)=sum(1/k^z,k,1,inf),即计算

8、zeta(n,z)=计算zeta(z)的k阶导数。

注意:浮点运算误差较大,而符号运算结果精确。

9、r=vpa(s):按Digit可控精度计算s的值。digits(n)可设定有效数值、vpa(s,d)指定s的精度为d为有效数值。

10、创建抽象函数的格式:f=sym('f(var1,var2,var3,···)')

11、用map命令创建抽象函数:

map(fcn,expr,arg1,arg2,···,argn)

map(fcn,arg1,expr,arg2,···,argn)以上命令中,fcn:一个操作手续或者名称;expr表达式;arg1:用于操作对象。

12、调用特殊函数可用mfun('函数')来调用。

13、函数计算器的使用:在命令栏中输入funtool,打开操作器。

第一排按钮是:df/dx:求函数的导数

intf:求函数的积分

simplef:对函数f(x)化简

numf:求函数的分子部分

denf:求函数的分子部分

1/f:求函数的倒数 finv:求函数的反函数。swap:交换f和g的值。

1kz的积分。

在命令栏中输入taylor可调出泰勒计算器。

第七章符号函数图形的绘制

fplot(fun,lims,str,tol):直接绘制函数y=fun(x)的图形其中lims为一个向量,若lims只包含两个元素,则表示x轴的范围;若lims包含四个元素则前两个元素表示x轴的范围,后两个元素表示y的范围。str可以指定图形的线性和颜色。tol值小于一,代表相对误差。

fplot(fun,lims,n):用最少为n+1个点来绘制函数fun的图形。用fplot(@humps,[-1,5])来绘制函数humps的图形比较光滑,其中@humps表示以函数句柄的形式引用函数,若是直接输入函数,而不是函数名,则用单引号括起。

fplot('[tan(x),sin(x),cos(x)]',[-2*pi,2*pi])plot('sin(1/x)',[0.01 0.1],1e-3)ezplot()可绘制二元函数:

1、ezplot(f):在默认区间x(2,2),上绘制函数f(x,y)的图形。

2、ezplot(f,[a,b]):在区间x(2,2)上绘制函数图形。对于隐函数f(x,y)来说,1、ezplot(f):在默认区间x(2,2),y(2,2)上绘制函数f(x,y)的图形。

2、ezplot(f,[x1,x2,y1,y2]):在这两个区间上绘制图形f(x,y).3、Ezplot('u^2-v^2-1',[-3,2,-2,3])就是区间u(-3,2),v(-2,3)上绘制u^2-v^2-1=0的函数图象,因为变量不是x,y所以区间按字母分配。

4、ezplot(x,y):在默认区间t(0,2*pi)上绘制函数x=x(t)和函数y=y(t)的图形。

5、ezplot(x,y,[tmin,tmax]):在区间(tmin,tmax)上绘制参数函数x=x(t),y=y(t)的图形

ezpolar绘制极坐标下的图形

ezpolar(f):在默认区间theta(0,2)上绘制函数rho=f(theta)的图形,其中theta为极角,rho为极径。

ezpolar(f,[a,b]):在区间theta(a,b)上绘制函数rho=f(theta)的图形。ezplot3绘制三维空间曲线

ezplot3(x,y,z):绘制三维曲线,含参数t.ezplot3(x,y,z,[tmin,tmax]):在区间t(tmin,tmax)内绘制三维曲线。ezplot3(x,y,z,[tmin,tmax],'animate'):产生空间曲线的动画绘制效果。

第三篇:matlab图像处理小结

1.function [center, r] = solve_circle(pt1, pt2, pt3)

2.%Effect: solve the circle which across points 'pt1', 'pt2' and 'pt3' 3.%Inputs:

4.%pt1, pt2, pt3: [x, y]

5.%center: the circle center [x0;y0] 6.%r: the radius of the circle 7.%Author: Su dongcai at 2012/1/2 8.A = zeros(2, 2);B = zeros(2, 1);9.[A(1, :), B(1)] = circle2line(pt1, pt2);10.[A(2, :), B(2)] = circle2line(pt2, pt3);11.center = AB;

12.r = norm(pt1'(y2^2 + y2^2)18.%(a-x2)^2 +(b-y2)^2 = r^2 | 19.%Inputs:

20.%pt1, pt2: [x1, y1], [x2, y2] 21.%Outputs:

22.%A: 2[x1-x2, y1-y2]

23.%B:(x1^2 + y1^2)pt2);

26.B = norm(pt1)^2-norm(pt2)^2;

close all;clear;clc;>> i=imread('rice.png');%>> imshow(i);>> background=imopen(i,strel('disk',15));>> i2=imsubtract(i,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> [labeled,numobjects]=bwlabel(bw,4);graindata=regionprops(labeled,'all');

close all;clear;clc;i=imread('rice.png');background=imopen(i,strel('disk',15));i2=imsubtract(i,background);i3=imadjust(i2,stretchlim(i2),[0 1]);level=graythresh(i3);bw=im2bw(i3,level);[labeled,numobjects]=bwlabel(bw,4);data=regionprops(labeled,'all');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.2 close all;clear;clc;>> i=imread('r.jpg');%>> figure,imshow(i);>> imgray=rgb2gray(i);>> figure,imshow(imgray)>> background=imopen(imgray,strel('disk',15));>> i2=imsubtract(imgray,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> imnobord=imclearborder(bw,4);%>> figure,imshow(imnobord);>> [labeled,numobjects]=bwlabel(bw,4);>> rgb_label=label2rgb(labeled,@spring,'c','shuffle');>> figure,imshow(rgb_label);>> graindata=regionprops(labeled,'all');hold on;for k=1:numobjects lab=sprintf('%d',k);text(graindata(k).Centroid(1),graindata(k).Centroid(2),lab,'Color','k');end hold off;%剔除碎米粒

>> idxdown=find([graindata.Area]<150);%剔除碎米粒 little=ismember(labeled,idxdown);figure,imshow(little);

[lab_little,num_little]=bwlabel(little,4);rgb_little=label2rgb(lab_little,@spring,'c','shuffle');figure,imshow(rgb_little);

little_data=regionprops(lab_little,'all');hold on;for k=1:num_little lab=sprintf('%d',k);text(little_data(k).Centroid(1),little_data(k).Centroid(2),lab,'Color','k');end hold off;%>> graindata(idxdown,:)=[];%剔除碎米粒 %剔除连接米粒

>> idxup=find([graindata.Area]>250);%剔除连接米粒 big=ismember(labeled,idxup);figure,imshow(big);

[lab_big,num_big]=bwlabel(big,4);rgb_big=label2rgb(lab_big,@spring,'c','shuffle');figure,imshow(rgb_big);

big_data=regionprops(lab_big,'all');hold on;for k=1:num_big lab=sprintf('%d',k);text(big_data(k).Centroid(1),big_data(k).Centroid(2),lab,'Color','k');end hold off;%>> graindata(numup,:)=[];%剔除连接米粒 %获取完整米粒

idxsuit=find([graindata.Area]>=150&[graindata.Area]<=250);suit=ismember(labeled,idxsuit);figure,imshow(suit);%获取完整米粒 [lab_suit,num_suit]=bwlabel(suit,4);suit_data=regionprops(lab_suit,'all');hold on;for k=1:num_suit signature=sprintf('%d',k);text(suit_data(k).Centroid(1),suit_data(k).Centroid(2),signature,'Color','r');end hold off;%获取完整米粒 whos graindata whos little_data whos big_data whos suit_data

>> graindata >> mean([graindata.Area])>> mean([graindata.Eccentricity])>> mean([graindata.MajorAxisLength])>> mean([graindata.MinorAxisLength])>> mean([graindata.EquivDiameter])>> figure,hist([graindata.Area],20);>> figure,hist([graindata.Eccentricity],20);>> figure,hist([graindata.MajorAxisLength],20);>> figure,hist([graindata.MinorAxisLength],20);>> figure,hist([graindata.EquivDiameter],20);

data=[graindata.Area] data=[graindata.Centroid] data=[graindata.BoundingBox] data=[graindata.SubarrayIdx] data=[graindata.MajorAxisLength] data=[graindata.MinorAxisLength] data=[graindata.Eccentricity] data=[graindata.Orientation] data=[graindata.ConvexHull] data=[graindata.ConvexImage] data=[graindata.ConvexArea] data=[graindata.Image] data=[graindata.FilledImage] data=[graindata.FilledArea] data=[graindata.EulerNumber] data=[graindata.Extrema] data=[graindata.EquivDiameter] data=[graindata.Solidity] data=[graindata.Extent] data=[graindata.PixelIdxList] data=[graindata.PixelList]

Area 计算各个连通区域中的象素总数 BoundingBox 包含相应区域的最小矩形 Centroid 给出每个区域的质心

MajorAxisLength 与区域具有相同标准二阶中心矩(又叫标准差)的椭圆的长轴长度 MinorAxisLength 与区域具有相同标准二阶中心矩的椭圆的短轴长度 Eccentricity 与区域具有相同标准二阶中心矩的椭圆的离心率

Orientation 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角 Image 二值图像,与某区域具有相同大小的逻辑矩阵。

FilledImage 与上相同,唯一区别是这是个做了填充的逻辑矩阵!本例中和上面的没有区别,只有 区域有空洞时才有明显差别。

FilledArea 是标量,填充区域图像中的 on 像素个数

ConvexHull 是p行2列的矩阵,包含某区域的最小凸多边形 ConvexImage 二值图像,用来画出上述的区域最小凸多边形 ConvexArea 是标量,填充区域凸多边形图像中的 on 像素个数 EulerNumber 等于图像中目标个数减去这些目标中空洞的个数 Extrema 8行2列矩阵,八方向区域极值点

EquivDiameter 是标量,等价直径:与区域具有相同面积的圆的直径.计算公式为:sqrt(4*Area/pi)

Solidity 是标量,同时在区域和其最小凸多边形中的像素比例。计算公式为: Area/ConvexArea,这也是个仿射特征,实际上反映出区域的固靠性程度。

Extent 是标量,同时在区域和其最小边界矩形中的像素比例。计算公式为:Area除以边界矩 形面积,这也是个仿射特征,实际上反映出区域的扩展范围程度。

PixelIdxList p元向量,存储区域像素的索引下标

PixelList p行ndims(L)列矩阵,存储上述索引对应的像素坐标 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 基于特定原则的区域选择

当你要基于特定准则条件选择某个区域时,将函数 ismember 和 regionprops 联合使用是很有用处的。例如:创建一个只包含面积大于80的二值图像,用以下命令

idx = find([stats.Area] > 80);BW2 = ismember(L,idx);regionprops函数的扩展思路

在regionprops函数的基础上,你可以使用它提供的基本数据来扩展它的功能,比如我就将区域的曲率数据和骨架数据作为它的另外属性值来开发,从而希望它能用来做更细致的特征提取。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.2 P221图像粒度测定(雪花)>> i=imread('snowflakes.png');>> figure,imshow(i);>> %(2)>> clahei=adapthisteq(i,'numtiles',[10 10]);>> clahei=imadjust(clahei);>> imshow(clahei);>> gi=imadjust(im2double(i),[],[0 1]);>> figure,imshow(gi),title('adjusted grayscale image');>> %(3)>> se=strel('disk',10);>> topi=imtophat(gi,se);>> figure,imshow(topi),title('top-hat image');>> %(4)>> for counter=0:22 remain=imopen(clahei,strel('disk',counter));intensity_area(counter+1)=sum(remain(:));end >> figure,plot(intensity_area,'m-*'),grid on;>> title('sum of opening(pixels)');>> title('sum of opening values in opened image as a function of radius');>> xlabel('radius of opening(pixels)');>> ylabel('pixel value sum of opened objects(intensity)');>> >> >> >> for counter=0:20 remain=imopen(topi,strel('disk',counter));surfarea(counter+1)=sum(remain(:));end >> figure,plot(surfarea,'m-*'),grid on;>> set(gca,'xtick',[0 2 4 6 8 10 12 14 16 18 20]);>> title('surface area of opened objects as a function of radius');>> xlabel('radius of opening(pixels)');>> ylabel('surface area of opened objects(pixels)');>> %(5)>> intensity_area_prime=diff(intensity_area);>> figure,plot(intensity_area_prime,'m-*'),grid on;>> title('Granulometry(size distrubution)of snowflakes');>> set(gca,'xtick',[0 2 4 6 8 10 12 14 16 18 20 22]);>> xlabel('radius of snowflakes(pixels)');>> ylabel('sum of pixel values in snowflakes as a function of radius');>> derivsurfarea=diff(surfarea);>> figure,plot(derivsurfarea,'m-*'),grid on;>> title('granulometry(size distribution)of stars');>> xlabel('radius of stars(pixels)');>> ylabel('loss of pixels between two successive openings');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.2 花椒检测 clc;clear;close all;i=imread('gj.jpg');imshow(i);icanny=edge(i,'canny');imshow(icanny);se90=strel('line',2,90);se0=strel('line',2,0);bwsdil=imdilate(icanny,[se90 se0]);figure,imshow(bwsdil),title('dilated');ifill=imfill(bwsdil,'holes');figure,imshow(ifill);

%bwero=imerode(bwsdil,[se90 se0]);%figure,imshow(bwero);%i2fill=imfill(bwero,'holes');%figure,imshow(bwero);%imshow(i2fill);

%bwnobord=imclearborder(bwsdil,4);%figure,imshow(bwnobord);bwnobord=imclearborder(ifill,4);figure,imshow(bwnobord);se=strel('disk',5);bwc=imclose(bwnobord,se);bwco=imopen(bwnobord,se);figure,imshow(bwc);figure,imshow(bwco);%mask=bwsdil&bwco;%figure,imshow(mask);clc [labeled,numobjects]=bwlabel(bwco);numobjects

jdata=regionprops(labeled,'all');%jdata

jarea=[jdata.Area];mean(jarea)max(jarea)min(jarea)hist(jarea,255)jdata.Eccentricity %std([jdata.Eccentricity])/(Mean([jdata.Eccentricity])jstd=std([jdata.Eccentricity])jmean=Mean([jdata.Eccentricity])jcv=jstd/jmean

>> std([jdata.Area])/ mean([jdata.Area])%面积的变异系数

>> std([jdata.Eccentricity])/ mean([jdata.Eccentricity])%椭圆的变异系数 >> std([jdata.MajorAxisLength])/ mean([jdata.MajorAxisLength])>> std([jdata.MinorAxisLength])/ mean([jdata.MinorAxisLength])>> std([jdata.EquivDiameter])/ mean([jdata.EquivDiameter])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.06.06 rice.png close all;clear;clc >> i=imread('rice.png');imshow(i);background=imopen(i,strel('disk',15));figure,imshow(background);i2=imsubtract(i,background);figure,imshow(i2);i3=imadjust(i2,stretchlim(i2),[0 1]);figure,imshow(i3);level=graythresh(i3);bw=im2bw(i3,level);figure,imshow(bw);imnobord=imclearborder(bw);[label,numobjects]=bwlabel(imnobord,4);numobjects rgb_label=label2rgb(label,@spring,'c','shuffle');figure,imshow(rgb_label);graindata=regionprops(label,'all');graindata

>> numdown=find([graindata.Area]<150);>> graindata(numdown,:)=[];>> numup=find([graindata.Area]>250);>> graindata(numup,:)=[];>> graindata

>> std([graindata.Area])/ mean([graindata.Area])%面积的变异系数

>> std([graindata.Eccentricity])/ mean([graindata.Eccentricity])%椭圆的变异系数

>> std([graindata.MajorAxisLength])/ mean([graindata.MajorAxisLength])>> std([graindata.MinorAxisLength])/ mean([graindata.MinorAxisLength])>> std([graindata.EquivDiameter])/ mean([graindata.EquivDiameter])%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.06.06 rice的垩白度检测 >> clear;close all;clc;>> rgb=imread('r.jpg');>> close all;>> imshow(rgb);>> i=rgb2gray(rgb);>> j=medfilt2(i,[5 5]);>> figure,imshow(i);>> figure,imshow(j);>> imhist(j,256);>> t=0.3;>> v=imadjust(j,[t 1],[],1);>> imhist(v,256);>> t_c=0.6;>> bw_v=im2bw(v,0.01);>> chalk=imadjust(v,[t_c 1],[],1);>> bw_chalk=im2bw(chalk,0.01);>> figure,imshow(v);>> figure,imshow(bw_v);>> figure,imshow(chalk);>> figure,imshow(bw_chalk);>> degree_chalkness=bwarea(bw_chalk)/bwarea(bw_v)*100 >> bw=im2bw(j,t);>> figure,imshow(bw);>> se=(ones(3,3));>> bw1=imerode(bw,se);%两次腐蚀 >> figure,imshow(bw1);>> bw2=imerode(bw1,se);>> figure,imshow(bw2);

>> [l,num]=bwlabel(bw2);%标记腐蚀后的大米图像 >> t_chalk=100;%设置垩白面积的下限 >> compare=(l)&(chalk>t_chalk);%>> compare=(bw2)&(bw_chalk>t_chalk);>> [r,c]=find(compare);%标记垩白米粒的位置 >> result=bwselect(l,c,r);%显示只含有垩白米粒的图像 >> figure,imshow(result);

>> [l_chalk,num_chalk]=bwlabel(result);%标记垩白米粒图像,便于计数 >> rate_chalky_grains=num_chalk/num*100;>> rate_chalky_grains

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.17 bwmorph函数 >> help bwmorph BWMORPH Perform morphological operations on binary image.BW2 = BWMORPH(BW1,OPERATION)applies a specific morphological operation to the binary image BW1.BW2 = BWMORPH(BW1,OPERATION,N)applies the operation N times.N can be Inf, in which case the operation is repeated until the image no longer changes.OPERATION is a string that can have one of these values: 'bothat' Subtract the input image from its closing 'bridge' Bridge previously unconnected pixels 'clean' Remove isolated pixels(1's surrounded by 0's)'close' Perform binary closure(dilation followed by erosion)'diag' Diagonal fill to eliminate 8-connectivity of background 'dilate' Perform dilation using the structuring element ones(3)'erode' Perform erosion using the structuring element ones(3)'fill' Fill isolated interior pixels(0's surrounded by 1's)'hbreak' Remove H-connected pixels 'majority' Set a pixel to 1 if five or more pixels in its 3-by-3 neighborhood are 1's 'open' Perform binary opening(erosion followed by dilation)'remove' Set a pixel to 0 if its 4-connected neighbors are all 1's, thus leaving only boundary pixels 'shrink' With N = Inf, shrink objects to points;shrink objects with holes to connected rings 'skel' With N = Inf, remove pixels on the boundaries of objects without allowing objects to break apart 'spur' Remove end points of lines without removing small objects completely.'thicken' With N = Inf, thicken objects by adding pixels to the exterior of objects without connected previously unconnected objects 'thin' With N = Inf, remove pixels so that an object without holes shrinks to a minimally connected stroke, and an object with holes shrinks to a ring halfway between the hold and outer boundary 'tophat' Subtract the opening from the input image

Class Support-------------The input image BW1 can be numeric or logical.It must be 2-D, real and nonsparse.The output image BW2 is logical.Examples--------BW1 = imread('circles.png');imview(BW1)BW2 = bwmorph(BW1,'remove');BW3 = bwmorph(BW1,'skel',Inf);imview(BW2)imview(BW3)

See also erode, dilate, bweuler, bwperim.Reference page in Help browser doc bwmorph

BW1 = imread('circles.png');figure,imshow(BW1)BW2 = bwmorph(BW1,'erode');figure,imshow(BW2)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %边界提取 b=bwmorph(bw,'remove');b=bwperim(bw,8);%又叫边界象素测定 b=edge(bw,'canny');%又叫边界提取 %去除孤立象素点

nosinglepixel=bwmorph(bw,'clean');%去除小面积物体

nosmall=bwareaopen(bw,CNN);%阈值处理再取反

bw=~im2bw(i,graythresh(i));

%开运算(消除小物体)与闭运算(填充物体内细小空洞)se=strel('disk',6);iopen=imopen(bw,se);iclose=imclose(bw,se);%腐蚀与膨胀联合操作 %(1)创建结构元素 se=strel('rectangle',[40 30]);%(2)使用结构元素腐蚀图像 bw1=imread('circbw.tif');bw2=imerode(bw1,se);imshow(bw2);%(3)逆操作,回复矩形原来大小 bw3=imdilate(bw2,se);figure,imshow(bw3);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.18花椒子

%直接对灰度图进行canny运算 >> i=imread('nut.bmp');>> figure,imshow(i);>> ig=rgb2gray(i);>> figure,imshow(ig);%igcanny=edge(ig,'canny');%igcfill=imfill(igcanny,'hole');igcanny_thresh=edge(ig,'canny',(graythresh(ig)*.1));igcfill=imfill(igcanny_thresh,'hole');>> figure,imshow(igcfill);

%先对灰度图滤波,再进行canny运算

>> imed=medfilt2(ig);%中值滤波后对图像边界有一定的损伤!!>> imedcanny=edge(imed,'canny');>> imedfill=imfill(imedcanny,'hole');>> figure,imshow(imedfill);>> nosmall=bwareaopen(imedfill,150);>> figure,imshow(nosmall);

%注意:若对灰度图像先拉氏锐化,在canny提取边界,效果不大好!!%结论:无需拉氏锐化,也不必中值滤波,可直接canny提取边界!!>> ifill=igcfill|imedfill;>> figure,imshow(ifill);>> nosmall=bwareaopen(ifill,150);>> figure,imshow(nosmall);

%当t=0.55时,阈值处理再canny运算的效果 >> imhist(ig);>> t=0.55;>> v=imadjust(ig,[0 t],[],1);>> vcanny=edge(v,'canny');>> vfill=imfill(vcanny,'hole');>> figure,imshow(vfill);>> ifill=igcfill|vfill;>> figure,imshow(ifill);>> nosmall=bwareaopen(ifill,150);>> figure,imshow(nosmall);

%当t=0.6时,阈值处理再canny运算的效果的效果 >> t=0.6;>> v=imadjust(ig,[0 t],[],1);>> vcanny=edge(v,'canny');>> vfill=imfill(vcanny,'hole');>> figure,imshow(vfill);>> ifill=igcfill|vfill;>> figure,imshow(ifill);>> nosmall=bwareaopen(ifill,150);>> figure,imshow(nosmall);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %处理花椒子

>> i=imread('nut.bmp');%figure,imshow(i);ig=rgb2gray(i);figure,imshow(ig);>> imed=medfilt2(ig);imedcanny=edge(imed,'canny');imedfill=imfill(imedcanny,'hole');%figure,imshow(imedfill);nosmall=bwareaopen(imedfill,150);>> figure,imshow(nosmall);>> [labeled,numobjects]=bwlabel(nosmall,4);>> rgb_label=label2rgb(labeled,@spring,'c','shuffle');%>> figure,imshow(rgb_label);>> nutdata=regionprops(labeled,'all');>> min([nutdata.Solidity])

>> rectangle('Position', [253.5000 207.5000 26.0000 28.0000])%画矩形

>> rectangle('Position', [250.5000 50.5000 27.0000 26.0000])>> figure,imshow(nutdata(1).Image)%只显示1号物体的图像

>> figure,imshow(nutdata(1).ConvexImage)%画出1号物体的凸多边形 >> std([nutdata.Eccentricity])/ mean([nutdata.Eccentricity])std([nutdata.Area])/ mean([nutdata.Area])std([nutdata.Solidity])/ mean([nutdata.Solidity])>> std([nutdata.Centroid])/ mean([nutdata.Centroid])std([nutdata.MajorAxisLength])/ mean([nutdata.MajorAxisLength])std([nutdata.MinorAxisLength])/ mean([nutdata.MinorAxisLength])std([nutdata.Orientation])/ mean([nutdata.Orientation])std([nutdata.EquivDiameter])/ mean([nutdata.EquivDiameter])std([nutdata.Extent])/ mean([nutdata.Extent])std([nutdata.Extrema])/ mean([nutdata.Extrema])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %处理花椒皮 close all;clc;clear;>> i=imread('p.bmp');imshow(i);ig=rgb2gray(i);figure,imshow(ig);imed=medfilt2(ig);imedcanny=edge(imed,'canny');figure,imshow(imedcanny);>> se90=strel('line',2,90);se0=strel('line',2,0);bwsdil=imdilate(imedcanny,[se90 se0]);figure,imshow(bwsdil),title('dilated');ifill=imfill(bwsdil,'holes');figure,imshow(ifill);>> bwero=imerode(ifill,[se90 se0]);>> figure,imshow(bwero);>> nosmall=bwareaopen(bwero,150,4);>> figure,imshow(nosmall);>> nobord=imclearborder(nosmall,4);>> figure,imshow(nobord);>> [labeled,numobjects]=bwlabel(nobord,4);>> numobjects >> pdata=regionprops(labeled,'all');>> max([pdata.Solidity])>> std([pdata.Solidity])/mean([pdata.Solidity])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %处理混合图像 >> clear;clc;close all;>> i=imread('m.bmp');%>> figure,imshow(i);>> ig=rgb2gray(i);figure,imshow(ig);imed=medfilt2(ig);%>> figure,imshow(imed);imedcanny=edge(imed,'canny');%>> figure,imshow(imedcanny);>> se90=strel('line',2,90);se0=strel('line',2,0);bwsdil=imdilate(imedcanny,[se90 se0]);%figure,imshow(bwsdil),title('dilated');ifill=imfill(bwsdil,'holes');%figure,imshow(ifill);bwero=imerode(ifill,[se90 se0]);%figure,imshow(bwero);>> nosmall=bwareaopen(bwero,150,4);%figure,imshow(nosmall);nobord=imclearborder(nosmall,4);figure,imshow(nobord);>> [labeled,numobjects]=bwlabel(nobord,4);>> numobjects >> rgb_label=label2rgb(labeled,@spring,'c','shuffle');figure,imshow(rgb_label);>> mexdata=regionprops(labeled,'all');hold on;%以下内容画在同一figure中 centr=[mexdata.Centroid];%寻找重心位置 nums=1:numobjects;for k = 1:numobjects soli=mexdata(k).Solidity;soli_string=sprintf('%2.2f',soli);%等价于转字符串 % signal=num2str(nums(k));signal=sprintf('%d',k);%直接使用打印语句打印序号 text(centr(2*k-1),centr(2*k),signal)%按序标记物体

text(centr(2*k-1)-30,centr(2*k)-30,soli_string)%标注每个Solidity值 end

for k=1:numobjects plot(mexdata(k).ConvexHull(:,1),mexdata(k).ConvexHull(:,2),...'b','Linewidth',2)end

%画出1和2号物体的外接矩形

%>> rectangle('position',[9.5000 224.5000 62.0000 63.0000])%>> rectangle('position',[65.5000 141.5000 34.0000 39.0000])%画出每个物体的外接矩形 bb=[mexdata.BoundingBox];for k=1:numobjects rectangle('position',[bb(4*k-3)bb(4*k-2)bb(4*k-1)bb(4*k)])end

%>> figure,imshow(mexdata(1).Image)%只显示1号物体的图像

%>> figure,imshow(mexdata(1).ConvexImage)%画出1号物体的凸多边形 %>> figure,imshow(mexdata(2).Image)%只显示2号物体的图像

%>> figure,imshow(mexdata(2).ConvexImage)%画出2号物体的凸多边形 %画出单个物体的凸多边形的填充图形 for k=1:numobjects figure,imshow(mexdata(k).ConvexImage)end

%只显示Solidity>0.92的物体的图像 >> idx = find([mexdata.Solidity] > 0.92);>> BW2 = ismember(labeled,idx);>> figure,imshow(BW2)

>> mexdata=regionprops(labeled,'all');>> %只显示Solidity<0.92的物体的图像 idx = find([mexdata.Solidity] < 0.92);bw2 = ismember(labeled,idx);figure,imshow(bw2)%mexdata.Solidity;

>> numdown=find([mexdata.Solidity]<0.92);mexdata(numdown,:)=[];>> mexdata

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.19 %roipoly函数的用法 I = imread('eight.tif');c = [222 272 300 270 221 194];r = [21 21 75 121 121 75];BW = roipoly(I,c,r);imview(I), imview(BW)

%可以使用下面的方法创建相应的向量: regionprops(L,'Area');allArea = [stats.Area];

%创建一个只包含面积大于80的二值图像 idx = find([stats.Area] > 80);BW2 = ismember(L,idx);

%只显示某个下标所对应的物体图像 bw2=ismember(L,N);figure,imshow(bw2);

%在调用regionprops之前必须将二值图像转变为标注矩阵 L = bwlabel(BW);%或者

L = double(BW);

%将matlab数据写到excel中 a=ones(3);success = xlswrite('c:/matlab/work/myworkbook.xls',a,'A2:C4')%将行矩阵转换为列矩阵 a=[1 2 3 4 5 6];b=transpose(a);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.22球形物体的检测和标识(循环检测和标识算法)clc;clear;close all;%Step 1: Read image %Step 2: Threshold the image %Step 3: Remove the noise %Step 4: Find the boundaries %Step 5: Determine which objects are round >> RGB = imread('pillsetc.png');imshow(RGB)>> I = rgb2gray(RGB);threshold = graythresh(I);bw = im2bw(I,threshold);imshow(bw)>> % remove all object containing fewer than 30 pixels bw = bwareaopen(bw,30);>> figure,imshow(bw)>> % fill a gap in the pen's cap se = strel('disk',2);bw = imclose(bw,se);>> figure,imshow(bw)>> % fill any holes, so that regionprops can be used to estimate % the area enclosed by each of the boundaries bw = imfill(bw,'holes');>> figure,imshow(bw)>> [B,L] = bwboundaries(bw,'noholes');>> % Display the label matrix and draw each boundary figure,imshow(label2rgb(L, @jet, [.5.5.5]))>> hold on for k = 1:length(B)boundary = B{k};plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)end >> stats = regionprops(L,'Area','Centroid');>> stats = regionprops(L,'Area','Centroid');threshold = 0.94;% loop over the boundaries for k = 1:length(B)% obtain(X,Y)boundary coordinates corresponding to label 'k' boundary = B{k};% compute a simple estimate of the object's perimeter delta_sq = diff(boundary).^2;perimeter = sum(sqrt(sum(delta_sq,2)));

% obtain the area calculation corresponding to label 'k' area = stats(k).Area;

% compute the roundness metric metric = 4*pi*area/perimeter^2;

% display the results metric_string = sprintf('%2.2f',metric);% mark objects above the threshold with a black circle if metric > threshold centroid = stats(k).Centroid;plot(centroid(1),centroid(2),'ko');end

text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...'FontSize',14,'FontWeight','bold');end >> title(['Metrics closer to 1 indicate that ',...'the object is approximately round']);

第四篇:MATLAB实训小结

实训小结

为期一周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。

在第一节课,我们便了解到MATLAB是世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。对MATLAB的系统结构和特点等,老师也向我们做出了大致的讲解,同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训的第一天大家都在期待和兴奋中度过。

接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂的可以相互之间小声的讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的学习接近尾声时,就是老师考察大家一天的收获的时候了,老师总会出一些小题目让大家编出它的程序,虽然有的题目对我们来说还是有些难度的,但是在老师的指点下我们还是编出程序的,当我们看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。

就这样,仅仅一个星期的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的就是时间有点短,我们不能在这段时间里学到更多的知识,因此,在这一周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。

知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走,即是充满荆棘,也要努力奋斗往前冲。

第五篇:MatLab基础知识小结来源

MatLab基础知识小结来源: 吴学箫的日志

matlab常用到的永久变量。ans:计算结果的默认变量名。i j:基本虚数单位。

eps:系统的浮点(F10a9Bg个oht): inf: 无限大,例1/0 nan NaN:非数值(N航a nmnb谢)pi:圆周率n(n=3.1415926..)。realmax:系统所能表示的最大数值。realmin: 系统所能表示的最小数值,nargin: 函数的输入参数个数: nargout:函数的输出多数个数

①matlab的所有运算都定义在复数城上。对于方根问题运算只返回处于第一象限的解。

⑦matlab分别用左斜/和右来表示“左除和“右除”运算。对于标量运算而言,这两者的作用没有区别:但对于矩阵运算来说,二者将产生不同的结果。

多项式的表示方法和运算

p(x)=x^3-3x-5 可以表示为p=[1 0 –3 5],求x=5时的值用plotval(p,5)也可以求向量:a=[3 4 5],plotval(p,a)函数roots求多项式的根 roots(p)p=[1 0-3 5];r=roots(p)由根重组多项式poly(根)q=poly(r)real(q)有时会产生虚根,这时用real抽取实根即可 conv(a,b)函数 多项式乘法(执行两个数组的卷积)a=[1 2 3 4];b=[1 4 9 16];c=conv(a,b)多项式的加减法,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次 多项式除法 [q , r]=deconv(c , b)表示b/c q为商多项式,r为余数 多项式的导数 polyder(f)f=[ 2 4 5 6 2 1];s=polyder(f)

多项式的曲线拟合 x=[1 2 3 4 5];y=[5.6 40 150 250 498.9];p=polyfit(x,y,n)数据的n次多项式拟合 poly:矩阵的特征多项式、根集对应的多项式 x2=1:0.1:5;n取1时,即为最小二乘法

y2=polyval(p,x2);计算多项式的值(polyvalm计算矩阵多项式)plot(x,y,'*',x2,y2);grid on 最小二乘法 x=[1 2 3 4 5];y=[5.6 40 150 250 498.9];plot(x,y,’*’),lsline

多项式插值(p158)

YI=interp1(x,y,XI,’method’)一维插值

(XI为插值点的自变量坐标向量,可以为数组或单个数。method为选择插值算法的方法,包括: linear(线性插值)cubic(立方插值)spline(三次样条插值)nearst(最近临插值)

例如:人口预测 year=1900:10:1900;number=[78 91 105 „.每十年的人口数];x=1900:1:2000;y=interp1(year,number,x,’spline’);plot(year,numeber,’*’,x,y);grid on

一维博里叶变换插值使用函数interpft实现,计算含有周期函数值的矢量的傅里叶变换

然后使用更多的点进行傅里叶变换的逆变换,函数的使用格式如下:y=interpft(x,n)其中x是含有周期函数值的矢量,并为等距的点,n为返同等间距点的个数。

求解一元函数的最小值

y=fminbnd('humps',0.3,1)humps为一内置函数 求解多元函数的最小值

函数fminserch用于求多元函数的最小值。它可以指定一个开始的矢量,并非指定一个区间。此函数返回一个矢量为此多元函数局部最小函数值对应的自变量

纹理成图功能

由warp函数的纹理成图功能实现平面图像在空间三维曲面上的显示。将文件名为flowers.tif的图像分别投影到圆柱形和球星表面上 i=imread('flowers.tif');[x,y,z]=cylinder;subplot(1,2,1),warp(x,y,z,i);[x,y,z]=sphere(50);subplot(1,2,2),warp(x,y,z,i);warp(x,y,z,i);求函数的零点

求函数humps在[1,2]区间上的零点 fzero(‘humps’,[1,2]);也可以给一个初始值 fzero(‘humps’,0.9);对于多项式可直接由roots求其根 roots(‘4*x^3+……’);也可以用solve c=sym('c','real');x=sym('x','real');s=solve(x^3-x+c)

函数定积分

q=quadl(‘humps’,0,1)求humps函数在0 1区间上的定积分,也可以用quad语句

二重积分 首先计算内积分,然后借助内积分的中间结果再求出二重积分的值,类似于积分中的分步积分法。Result=dblquad(‘integrnd’,xin,xmax.,ymin,ymax)integrnd为被积函数的名称字符串

符号积分运算int(f)最精确的是符号积分法 计算s=∫12[∫01xydx]dy syms x y 中间为空格,不能为逗号

s=int(int(‘x^y’,’x’,0,1),’y’,1,2)引号可省略 vpa(s)显示s的值 内积分限为函数的二重积分 I=∫14[∫√y2(x2+y2)dx]dy 符号法I=vpa(int(int(‘x^2+y^2’,’x’,sqrt(y),2),’y’,1,4)

微分运算(diff)

微分是描述一个函数在一点处的斜率,是函数的微观性质、因此积分对函数的形状在小范围内的改变不敏感,而微分很敏感。—个函数的小的变化,容易产生相邻点的斜率的大的改变。由干微分这个固有的困难.所以尽可能避免数值微分.特别是对实验获得的数据进行微分。在这种情况,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分;或用另一种方法对点数据进行三次样条拟合,然后寻找样条微分,但是,有时微分运算是不能避免的,在MATLAB中.用函数diff汁算一个矢量或者矩阵的微分(也可以理解为差分)。

a=[1 2 3 3 3 7 8 9];b=diff(a)一次微分 bb=diff(a,2)二次微分

实际上diff(a)=[a(2)-a(1),a(3)-a(2),„„,a(n)-a(n-1)] 对于求矩阵的微分,即为求各列矢量的微分,从矢量的微分值可以判断矢量的单调性、是否等间距以及是否有重复的元素。符号微分运算(diff)syms x t a f =cos(a*x)df =diff(f)由findsym的规则,隐式的指定对x进行微分 dfa=diff(f,'a')指定对变量a进行微分 dfa=diff(f,'a',3)三次微分 diff函数不仅作用在标量上,还可以在矩阵上,运算规则就是按矩阵的元素分别进行微分 syms a x A=[cos(a*x),sin(a*x),-sin(a*x),cos(a*x)];dA=diff(A)微分方程dsolve 在matlab中,符号表达式中包含字母D用来表示微分运算,D2,D3分别对应第二,第三阶导数,D2y表示d2y/dt2 把t缺省了

y=dsolve(‘Dy=f(y)’)单个方程,单个输出

[u,v]=dsolve(‘Du=f(u,v)’,’Dv=g(u,v)’)2个方程,2个输出 s=dsolve(‘Dx=f(x,y,z)’,’Dy=g(x,y,z)’,’Dz=k(x,y,z)’)s.x s.y s.z 3个方程,架构数组

dsolve('Dx=-a*x')结果:C1*exp(-a*t)没给定初值,所以结果中含参变量 x=dsolve('Dx=-a*x','x(0)=1','s')结果exp(-a*s)给定了初值,独立变量设为s 计算多元函数的梯度

fx=gradient(f)f是一个矢量返回f的一维数值梯度,fx对应于x方向的微分。

[x,y]=meshgrid(-2:.2:2,-2:.2:2);z=x.*exp(-x.^2-y.^2);[px,py]=gradient(z,.2,.2);contour(z),hold on 画等值线 quiver(px,py)

matlab字符串运算 利用sym命令创建表达式

f=sym(‘cos(x)+sin(x)’)或 syms x , f=cos(x)+sin(x)diff(f)求其导数

(也可直接用命令f=diff(‘cos(x)+cos(y)’)

当字符表达式中含有多于一个的变量时,只有—个变量是独立变量。如果不告诉matlab哪一个变量是独立变量,则可以通过findsym命令询问 利用findsym命令查询独立变量 f=sym('sin(a*x)+b')findsym(f,1)给出独立变量(一个变量,如果为2则给出2个变量)findsym(f)给出所有变量

符号表达式的化简和替换

collect函数 collect(f,v)表示将f表示为关于符号变量v的多项式形式,即关于v合并同类项,v缺省,则用findsym确定的缺省变量 syms x y f=x^2*y+y*x-x^2-2*x+1 collect(f)得到(-1+y)*x^2+(y-2)*x+1 collect(f,y)得到(x+x^2)*y+1-x^2-2*x expand函数 expand(f)将f展开,写成和的形式 syms x expand((x-1)^3)得到x^3-3*x^2+3*x-1 horner函数 horner(f)将f写成镶嵌套形式 syms x horner(x^3-6*x^2)得到(-6+x)*x^2 factor函数 factor(f)将f转换成低阶有理多项式的乘积 syms x f=x^3-6*x^2+11*x-6 factor(f)得到(x-1)*(x-2)*(x-3)simplify(f)函数 综合化简 simple(f)函数的最简形式 syms x f=2*sin(x^2)+cos(3*x)simple(f)如果不想看到中间过程,可z=simple(f)有时使用两次simple命令可以得到最简式 如果想知道哪个简化命令得到最后结果,可以加一个参数how [z,how]=simple(f)

符号表达式的替换 subs(f,new,old)f='a*x^2+b*x+c' subs(f,'t','x')得到a*(t)^2+b*(t)+c subs是一个符号函数,返回一个符号变量

subexpr函数 有时matlab返回的符号表达式难以理解,用subexpr函数,可以将表达式中重复出现的子式用一个符号表示,从而简化表达形式 c=sym('c','real');x=sym('x','real');s=solve(x^3-x+c)a=subexpr(s)得到sigma =-108*c+12*(-12+81*c^2)^(1/2)a =

[ 1/6*sigma^(1/3)+2/sigma^(1/3)] [-1/12*sigma^(1/3)-1/sigma^(1/3)+1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))] [-1/12*sigma^(1/3)-1/sigma^(1/3)-1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))]

pretty函数有时也能起到同样的作用。Pretty(f)显示函数的习惯书写形式

线性方程组的求解

求解线性方程组,用反斜杠 a=hilb(3)b=[1 2 3]' ab

矩阵的特征值和特征向量

用eig(v,d)函数,[v,d]=eig(A);其中d将返回特征值,v返回相应的特征向量,缺省第二个参数将只返回特征值

syms a b c real A=[a b c;b c a;c a b];[v,d]=eig(A);

为了观察更清楚,使用以前学过的替换函数,这里不用默认的sigma,而改用M,显式的代替繁琐的表达子式

vv=subexpr(v);vs=subs(vv,'m','sigma')运行结果为 vs =

[ 1, 1, 1] [-(c+(m)-a)/(c-b),-(c-(m)-a)/(c-b), 1] [-(a-(m)-b)/(c-b),-(a+(m)-b)/(c-b), 1]

再用m替换d中的表达子式 dd=subexpr(d);ds=subs(dd,’m’,’sigma’)运行结果为ds =

[(m), 0, 0] [ 0,-(m), 0] [ 0, 0, c+a+b] note 求特征值也可用以下命令

f=poly(A)poly函数 用来求A的特征多项式 d=solve(f)solve(f)函数用来求多项式的解

svd()函数 求矩阵的奇异值分解,将矩阵分解为两个正交矩阵和对角矩阵的乘积 a=sym(hilb(2))[u,s,v]=svd(a)

代数方程和方程组

代数方程的求解可用solve(f)命令,如果f不含=,matlab将给表达式置零。方程的未知量在默认的情况下由findsym决定或显式指出 syms a b c x solve(a*x^2+b*x+c)以x为默认变量 solve(a*x^2+b*x+c,a)指定对a为变量 求含有等号的方程的解(一定要加单引号)f=solve(‘cos(x)=sin(x)’)

x=solve('exp(x)=tan(x)')如果不能求得符号解,就计算可变精度解。求解方程组与单方程类似 解一个三元一次方程

v=solve('a*u^2+v^2','u-v=1','a^2-5*a+6')结果为v =

a: [4x1 sym] u: [4x1 sym] v: [4x1 sym] 一些常用的符号运算 极限运算limit limit(f)求x到0的极限

limit(f,x,a)或limit(f,a)求x到a的极限

limit(f,a,’left’)limit(f,a,’right’)求x到a的左极限和右极限 limit(f,inf)求x趋于无穷的极限 符号求和symsum(s)symsum(s)以默认的findsym决定的变量求和 symsum(s,v)以s中指定的变量v求和

symsum(s,a,b)symsum(s,v,a,b)从a到b的有限项求和 syms k n symsum(k)从0到k求和

symsum(k,0,n-1)从0到n-1求和 symsum(1/k^2,1,inf)无限项求和 泰勒级数taylor(f)taylor(f)表示求f的5阶talor展开,可以增加参数指定展开的阶数(默认式5),也可以对于多元函数指定展开的变量,还可以指定在哪个点展开 syms x t taylor(exp(-x))taylor(log(x),6,1)在1点的6阶taylor展开 taylor(x^t,3,t)对t的3阶taylor展开 积分变换

fourier变换和逆变换fourier(f)

fourier分析可以将信号转换为不同频率的正弦曲线。可对离散数据进行分析,也可对连续时间系统进行分析,特别在信号和图形处理领域。离散变换(DFT)作用于有限数据的采集,最有效的是快速fourier变换(FFT)

F=fourier(f)独立变量x,返回关于参数w的函数 F=fourier(f,v)返回函数F关于符号对象v的函数

F=fourier(f,u,v)对关于u的函数f进行变换,而不是缺省的w,返回函数F是关于v的函数 syms t v w x fourier(1/t)fourier(exp(-t)*sym('Heaviside(t)'),v)fourier(diff(sym('F(x)')),x,w)Fourier逆变换

f=ifourier(F)缺省独立变量w,返回关于x的函数对w进行积分 f=ifourier(F,v)返回函数f是关于符号对象v的函数,而不是缺省的x f=ifourier(F,u,v)是关于u的函数f进行变换,而不是缺省的x,返回函数f是关于v的函数 Laplace变换和逆变换laplace(f)应用于连续系统(微分方程)中,可以用来求解微分方程的初值问题 laplace(F)缺省独立变量t,缺省返回关于s的函数L laplace(F,t)返回关于t的函数L,而不是缺省的s laplace(F,w,z)对函数F的自变量w积分,返回关于z的函数L 逆变换

F=ilaplace(L)缺省独立变量s,返回关于t的函数F F=ilaplace(L,y)返回关于y的函数F,而不是缺省的t F=ilaplace(L,y,x)对函数L的自变量y积分,返回关于x的函数F Z-变换和逆变换ztrans(f)标量符号f的Z-变换 F=ztrans(f)缺省独立变量n,返回关于z的函数

F=ztrans(f,w)返回关于符号变量w的函数F,而不是缺省的z F=ztrans(f,k,w)关于k的符号变量作Z-变换返回关于符号变量w的函数 逆变换iztrans(F)f=iztrans(F)或(F,k)或(F,w,k)

符号绘图函数

符号函数简易绘图函数ezplot(f)f可以包含单个符号变量x的字符串或表达式,默认画图区间(-2pi,2pi),如果f包含x和y,画出的图像是f(x,y)=0的图像,缺省区间是-2pi

Ezplot(f,xmin,xmax)或ezplot(f,[xmin,xmax])绘制在xmin

[x,y]=fplot(fun,lims,…)只返回用来绘图的点,并不绘图,可以自己调用plot(x,y)来绘制图形。syms x subplot(2,2,1),fplot('humps',[0,1])f='abs(exp(x*(0:9))*ones(10,1))' subplot(2,2,2),fplot(f,[0,2*pi])subplot(2,2,3),fplot('sin(1./x)',[0.01,0.1],1e-3)matlab绘图 二维图形的绘制

plot 在(x,y)坐标下绘制二维图像 支持多个x-y二元结构 plot3 在(x,y,z)坐标下绘制三维图形 loglog 在(x,y)对数坐标下绘制二维图形

semilogx 在x为对数坐标,y为线性坐标的二维坐标中绘图 semilogy 在x为线性坐标,y为对数坐标的二维坐标中绘图 plotyy 在有两个y轴的坐标下绘图

plot用法

plot(x,y,'--rs','linewidth',2,'markeredgecolor','k',...'markerfacecolor','g','markersize',10)plotyy用法

plotyy(x1,y1,x2,y2)以x1为标准,左轴为y轴绘制y1向量,x2为基准,右轴为y轴,绘制y2向量 plotyy(x1,y1,x2,y2,fun)用字符串fun指定的绘图函数(plot ,semilogx,semilogy,loglog,stem)plotyy((x1,y1,x2,y2,fun1,fun2)t=0:pi/20:2*pi;y=exp(sin(t));plotyy(t,y,t,y,'plot','stem')stem为二维杆图

[ax,h1,h2]=plotyy(„)返回左右两y轴的句柄(分别为ax(1)ax(2),以及在两坐标轴中生成的图形对象的句柄,分别为h1 h2 t=0:900;A=1000;a=0.005;b=0.005;z2=cos(b*t);z1=A*exp(-a*t);[haxes,hline1,hline2]=plotyy(t,z1,t,z2,'semilogy','plot');axes(haxes(1))ylabel('semilog plot')对数坐标 axes(haxes(2))ylabel('linear plot')set(hline2,'linestyle','--')其他二维图形绘图指令 bar(x,y)二维条形图 hist(y,n)直方图

histfit(y,n)带拟和线的直方图,n为直方的个数 stem(x,y)火柴杆图 comet(x,y)彗星状轨迹图 compass(x,y)罗盘图 errorbar(x,y,l,u)误差限图 feather(x,y)羽毛状图

fill(x,y,’r’)二维填充函数 以红色填充 pie(x)饼图

polar(t,r)极坐标图 r为幅值向量,t为角度向量 t=0:0.1:8*pi;r=cos(3*t/2)+1/2;polar(t,r),xlabel('polar 指令')quiver(x,y)磁力线图 stairs(x,y)阶梯图 loglog(x,y)对数图

semilogx semilogy 半对数图

matlab三维作图 plot3(x,y,z)三维线条图 t=0:pi/50:15*pi;plot3(sin(t),cos(t),t,'r*')与plot相似 v=axis 返回各个轴的范围

text(0,0,0,'origin')在某个坐标点加入文字

plot3 增加维数可以一次画多个图,使所个二维图形眼一个轴排列

三维网线图的绘制 mesh(x,y,z)网格图

mesh(x,y,z,c)四维作图,(x,y,z)代表空间三维,c代表颜色维 mesh(…,’property name’,property value,…)设置曲面各属性的值 [x,y,z]=sphere(12);mesh(x,y,z),hidden off 曲面设置为透明 meshc(x,y,z)画网格图和基本的等值线图 meshz(x,y,z)画包含零平面的网格图

waterfall(x,y,z)与mesh一样,只是在效果上它的网格线只在x轴一个方向出现,呈瀑布状水线 两个变量的标量指令meshgrid(x)或meshgrid(x,y)(p179)将两个一维向量生成两个二维向量,以便进行z=f(x,y)运算,算出z的所有值,z为x y的标量指令 [X,Y]=meshgrid(x)meshgrid(x,x)的简略式 [X,Y]=meshgrid(x,y)[X,Y,Z]=meshgrid(x,y,z)用于三维图形的绘制 [x,y]=meshgrid([-2:0.1:2]);z=x.*exp(-x.^2-y.^2);plot3(x,y,z)surf(x,y,z,c)着色表面图 surf(x,y,z)隐含着c=z surf(z)隐含着x,y的值为surf指令根据z的尺寸自动生成 surfc 画出具有基本等值线的曲面图 surfl 画出一个具有亮度的曲面图

shading flat 网线图的某整条线段或曲面图的某个贴片都着一种颜色

shading interp 某一线段或贴片上各点的颜色由线或片的顶端颜色经线性插值而得 曲面图不能设成网格图那样透明,但需要时,可以在孔洞处将数据设成nun

等高线的绘制

在二维空间绘制等高线contour contour(x,y,z,n)绘制n条等值线(n可省略)

contour(x,y,z,v)在向量v所指定的高度上绘制等高线(可省)c=contour(x,y,z)计算等值线的高度值

c=contourc(x,y,z,n)计算n条等高线的x-y坐标数据

c=contourc(x,y,z,v)计算向量v所指定的等高线的x-y坐标数据 clabel(c)给c阵所表示的等高线加注高度标识 clabel(c,v)给向量v所指定的等高线加注高度标识 clabel(c,’manual’)借助鼠标给点中的等高线加注高度标识 三维空间绘制等高线contour3(x,y,z)[x,y,z]=peaks(30);contour3(x,y,z,16,'g')二元函数的伪彩图pcolor(x,y,z)是指令surf的二维等效指令,代表伪彩色,可与contour单色等值线结合画彩色等值线图 [x,y,z]=peaks(30);pcolor(x,y,z);伪彩色 shading interp 颜色插值,使颜色平均渐变 hold on,contour(x,y,z,20,'k')...画等值线 colorbar('horiz')水平颜色标尺 c=contour(x,y,z,8);clabel(c)标注等高线 矢量场图(速度图)quiver 用于描述函数z=f(x,y)在点(x,y)的梯度大小和方向 [X,Y]=meshgrid(x,y)X,Y为Z阵元素的坐标矩阵

[U,V]=gradient(Z,dx,dy)U,V分别为Z对x对y的导数,dx dy是x y方向上的计算步长

quiver(X,Y,U,V,s,’linespec’,’filled’)U,V为必选项,决定矢量场图中各矢量的大小和方向,s为指定所画箭头的大小,缺省时取1,linespec为字符串,指定合法的线形和彩色,filled用于填充定义的绘图标识符 [x,y]=meshgrid(-2:.2:2,-1:.15:1);z=x.*exp(-y.^2);[px,py]=gradient(z,.2,.15);contour(x,y,z);hold on,quiver(x,y,px,py),axis image 多边形的填色fill(x,y,c)c定义颜色字符串,可以是’r’,’b’等,也可以用RGB三色表示[r,g,b]值为0-1 图形的四维表现

matlab常用到的永久变量。

ans:计算结果的默认变量名。i j:基本虚数单位。

eps:系统的浮点(F10a9Bg个oht): inf: 无限大,例1/0 nan NaN:非数值(N航a nmnb谢)pi:圆周率n(n=3.1415926..)。realmax:系统所能表示的最大数值。realmin: 系统所能表示的最小数值,nargin: 函数的输入参数个数: nargout:函数的输出多数个数

①matlab的所有运算都定义在复数城上。对于方根问题运算只返回处于第一象限的解。

⑦matlab分别用左斜/和右来表示“左除和“右除”运算。对于标量运算而言,这两者的作用没有区别:但对于矩阵运算来说,二者将产生不同的结果。多项式的表示方法和运算

p(x)=x^3-3x-5 可以表示为p=[1 0 –3 5],求x=5时的值用plotval(p,5)也可以求向量:a=[3 4 5],plotval(p,a)函数roots求多项式的根 roots(p)p=[1 0-3 5];r=roots(p)由根重组多项式poly(根)q=poly(r)real(q)有时会产生虚根,这时用real抽取实根即可 conv(a,b)函数

多项式乘法(执行两个数组的卷积)a=[1 2 3 4];b=[1 4 9 16];c=conv(a,b)多项式的加减法,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次 多项式除法 [q , r]=deconv(c , b)表示b/c q为商多项式,r为余数 多项式的导数 polyder(f)f=[ 2 4 5 6 2 1];s=polyder(f)MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度

angle(z):复 数z的相角(Phase angle)

sqrt(x):开平方

real(z):复数z的实部imag(z):复数z的虚 部

conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数(Signum function)。

当x<0时,sign(x)=-1;

当x=0时,sign(x)=0;当x>0时,sign(x)=1。

> 小整理:MATLAB常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数

atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数

变数也可用来存放向量或矩阵,并进行各种运算

若要输入矩阵,则必须在每一列结尾加上分号(;),如下例:

A = [1 2 3 4;5 6 7 8;9 10 11 12];

下载MatLab 知识小结word格式文档
下载MatLab 知识小结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    matlab的nntool工具箱小结

    拟合以及插值还有逼近是数值分析的三大基础工具,通俗意义上它们的区别在于:拟合是已知点列,从整体上靠近它们;插值是已知点列并且完全经过点列;逼近是已知曲线,或者点列,通过逼近使......

    MATLAB小波函数小结(小编整理)

    通用函数函数 含义Allnodes 计算树结点appcoef 提取一维小波变换低频系数appcoef2 提取二维小波分解低频系数 bestlevt 计算完整最佳小波包树besttree 计算最佳(优)树* bio......

    MATLAB实验小结论文 数学建模

    数学建模论文题 目 求π的近似值的数学建模问题 学 院 材料科学与工程 专业班级 学生姓名 成 绩 年 05 月 20 MATLAB 2010 日 摘要 这个学期,我们开了MATLAB的课程,因为是......

    matlab作业题

    第一章 MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令......

    Matlab心得体会

    Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。......

    Matlab心得体会

    Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。......

    matlab学习心得[最终定稿]

    学习MATLAB 感想 学习了 MATLAB 这门课程,我了解该软件的基本功能,也知道 了该软件在我们生活中的重要地位。随着社会的不断发展,科技 的不断进步,计算机的普及,它也被应用在越......

    MATLAB论文

    MATLAB与在信号与系统中的应用 姓名:江肥 班级:*** 学号:*** 摘要:论文通过MATLAB在信号与系统中的应用实例,探讨了MATLAB在信号与系统中的应用方法和技巧,对运用计算机软件完成......