当前位置:文档之家› 最全的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 o n

一维博里叶变换插值使用函数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)

微分是描述一个函数在一点处的斜率,是函数的微观性质、因此积分对函数的形状在小范围内的改变不敏感,而微分很敏感。—个函数的小的变化,容易产生相邻点的斜率的大的改变。由干微分这个固有的困难.所以尽可能避免数值微分.特别是对实验获得的数据进行微分。在这种情况,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分;或用另一种方法对点数据进行三次样条拟合,然后寻找样条微分,但是,有时微分运算是不能避免的,在MA TLAB中.用函数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]'

a\b

矩阵的特征值和特征向量

用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

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中常见函数功用

⊙在matlab中clear,clc,clf,hold作用介绍 clear是清变量, clc只清屏, clf清除图形窗口上的旧图形, hold on是为了显示多幅图像时,防止新的窗口替代旧的窗口。 ①format:设置输出格式 对浮点性变量,缺省为format short. format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围-128:127。 format short, long不影响整型变量的显示。 format long 显示15位双精度,7为单精度(scaled fixed point) format short 显示5位(scaled fixed point format with 5 digits) format short eng 至少5位加3位指数 format long eng 16位加至少3位指数 format hex 十六进制 format bank 2个十进制位 format + 正、负或零 format rat 有理数近似 format short 缺省显示 format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。 format short g 5位定点或浮点格式 format short e 5位浮点格式 format long e 双精度为15位浮点格式,单精度为7为浮点格式 ②plot函数 基本形式 >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形是上30个点连成的光滑的正弦曲线。 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y=sin(x); >> w=cos(x);

(完整版)matlab函数大全(非常实用)

信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram 绘制眼图 scatterplot 绘制分布图 symerr 计算符号误差数和符号误差率 信源编码 compand mu律/A律压缩/扩张 dpcmdeco DPCM(差分脉冲编码调制)解码dpcmenco DPCM编码 dpcmopt 优化DPCM参数 lloyds Lloyd法则优化量化器参数 quantiz 给出量化后的级和输出值 误差控制编码 bchpoly 给出二进制BCH码的性能参数和产生多项式convenc 产生卷积码 cyclgen 产生循环码的奇偶校验阵和生成矩阵cyclpoly 产生循环码的生成多项式 decode 分组码解码器 encode 分组码编码器 gen2par 将奇偶校验阵和生成矩阵互相转换gfweight 计算线性分组码的最小距离 hammgen 产生汉明码的奇偶校验阵和生成矩阵rsdecof 对Reed-Solomon编码的ASCII文件解码rsencof 用Reed-Solomon码对ASCII文件编码rspoly 给出Reed-Solomon码的生成多项式syndtable 产生伴随解码表 vitdec 用Viterbi法则解卷积码 (误差控制编码的低级函数) bchdeco BCH解码器 bchenco BCH编码器 rsdeco Reed-Solomon解码器 rsdecode 用指数形式进行Reed-Solomon解码 rsenco Reed-Solomon编码器 rsencode 用指数形式进行Reed-Solomon编码 调制与解调

matlab基本用法

目录: 一、说明 二、数据类型及基本输入输出 三、流程控制 四、循环 五、数组、数组运算和矩阵运算 六、M脚本文件和M函数文件、函数句柄 七、文件 八、数据和函数的可视化 一、说明 matlab作为数学软件有其强大的图形用户界面操作、数据和函数的可视化和数值计算功能,且自带很多现有的函数和工具包。而本文只涉及一些比较系统的基本操作,在最后附带介绍一些基本的数据和函数的可视化命令。建议要用的时候再利用matlab自带的帮助文档来搜索有用的函数和工具包。matlab的函数和命令都是比较人性化的,比如想要搜索读取fits文件的函数,搜索fits就能够搜到fitsread函数;需要将读出的fits数据重新做图,搜索image就可以找到imagesc函数。从书和别人的文档都只能学到有限的比较系统的操作,看帮助文档能发现更多的东西并整理出自己的使用方法。 二、数据类型及基本输入输出 1、数据类型,声明及赋初值 matlab中存储的数据类型(class)有以下几种: 而实际上matlab不需要对变量做声明,当它发现一个新的变量名时,将默认将其为双精度浮点类型(double)并分配内存空间。(这比C和 Fortran方便了许多,但在完成大运算量的程序时就显得浪费存储空间了) 当需要把变量a从double转为其他类型的时候,比如要转为int16型,可以使用以下命令:a=int16(a) 当需要创建一个字符型变量x并对其赋初值时,用以下格式:x='字符串'; 注意: (1)在命令后加“;”表示不在command window中显示结果,而对上例来说如果不加“;”则会显示所赋字符串内容。 (2)所有的命令必须在英文输入状态下,如果使用中文输入状态下全角的“;”,将被处理为非法字符。其中logical,cell和structure为逻辑,元胞和构架数组类型,将在后面的数组部分提到;function handle为函数句柄类型,将在后面的“M脚本文件和M函数文件、函数句柄”部分提到;java类供JAVA API应用程序接口使用,本文不进行说明。最后说明一下,matlab也支持复数操作,赋值的时候直接输入即可,比如:a=1+2i; 2、基本输入输出 输入:v=input('message') %将用户输入的内容赋给变量v v=input('message','s') %将用户输入的内容作为字符串赋给变量v keyboard %用户可以从键盘输入任意多个指令 v=yesinput('prompt',default,possib) %prompt为文字提示,default为缺省设置“值”,possib为设置值的范围。

matlab函数用法

A a abs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名 any 所有元素非全零为真 area 面域图 argnames 函数M文件宗量名 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵 axes 创建轴对象的低层指令 axis 控制轴刻度和风格的高层指令 B b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制 bin2dec 二进制转换为十进制 blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令 brighten 亮度控制 C c

capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组 celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象 clc 清除指令窗 clear 清除内存变量和函数 clf 清除图对象 clock 时钟 colorcube 三浓淡多彩交叉色图矩阵 colordef 设置色彩缺省值 colormap 色图 colspace 列空间的基 close 关闭指定窗口 colperm 列排序置换向量 comet 彗星状轨迹图 comet3 三维彗星轨迹图 compass 射线图 compose 求复合函数 cond (逆)条件数 condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计 conj 复数共轭 contour 等位线 contourf 填色等位线 contour3 三维等位线

matlab各种函数的用法

1 Text函数的用法: 用法 text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string text(x,y,z,'string') 在三维图形空间中的指定位置(x,y,z)上显示字符串string 2, plot([0,z1,z12],'-b','LineWidth',3)[ ]里面表示数组. 3, x,y均为矩阵,plot命令就是画出x,y矩阵对应的二维平面的点形成的曲线。y(:,1)中逗号前是行,逗号后是列,冒号表示从几到几。所以y(:,1)表示第一列的所有元素。如果是y(3:5,1)则表示第一列的第3到第5行对应的元素。只要你的y矩阵有100列,那你当然可以将1改成100。同理,x矩阵也可以这样。 4 sym的意思是symbol,就是后面括号里面是个代数式,要进行符号运算,class()判断对象是什么类型。 5 matlab控制运算精度用的是digits和vpa这两个函数 xs = vpa(x,n) 在n位相对精度下,给出x的数值型符号结果xs xs = vpa(x) 在digits指定的精度下,给出x的数值型符号结果xs

digits用于规定运算精度,比如: digits(20); 这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如: digits(5); a=vpa(sqrt(2)); 这样a的值就是1.4142,而不是准确的1.4880 又如: digits(5); a=vpa(sqrt(2)); b=sqrt(2); 这样a的值是1.4142,b没有用vpa函数,所以b是1.4880...... 6

实验1 MATLAB使用方法和程序设计

实验1 MATLAB 使用方法和程序设计 一、实验目的 1、掌握MATLAB 软件使用的基本方法。 2、熟悉MATLAB 的数据表示、基本运算和程序控制语句。 3、熟悉MATLAB 绘图命令及基本绘图控制。 4、熟悉MATLAB 程序设计的基本方法。 二、实验内容 1.帮助命令 使用Help 命令,查找sqrt (开方)函数的使用方法。 2、矩阵运算 (1)矩阵乘法 已知A=[1 2;3 4];B=[5 5;7 8]; 求A^2*B 。 (2) 矩阵除法 已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3]; 求A\B,A/B 。 (3) 矩阵的转置及共轭转置 已知A=[5+i ,2-i ,1;6*i ,4,9-i];求A.’,A ’ 。 (4)使用冒号选出指定元素 已知A=[1 2 3 ; 4 5 6 ; 7 8 9]; 求A 中第3列前2个元素;A 中所有列第2,3行的元素。 (5)方括号[] 用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列。 3、多项式 (1)求多项式p(x)=x 3-2x-4的根。 (2)求 f (x) = (cos x)2 的一次导数。 (3)求微分方程 的通解,并验证。 4、基本绘图命令 (1)绘制余弦曲线cost =y , ]2,0[π∈t 。 (2)在同一坐标系中绘制余弦曲线 0.25)-cos(t =y 和正弦曲线 )5.0sin(-=t y ,]2,0[π∈t (3)用plot3函数绘制三维螺线: 22x dy xy xe dx -+= sin()cos()x t y t z t =??=??=?( 0 < t < 20 )

matlab基本函数的用法

一. Matlab中常见函数基本用法 1.sum (1 )sum(A)A为矩阵得出A矩阵每列的和组成的一个矢量; A为矢量得出A的各元 素之和 (2)sum(diag(A))得矩阵A的对角元素之和 (3)sum(A,dim) A为矩阵,sum(A,1)按列求和;sum(A,2)按行求和 2.max(min) (1)max(A) 若A为矩阵则得出A矩阵每列的最大元素组成的一个矢量 若A为矢量则得出A中最大的元 (2)max(A,B) A与B为同维矩阵得出取A 与B中相同位置元素中较大者组成的新矩阵 (3)max(A,[],dim) max(a,[ ],1),求每列的最大值;max(a,[ ],2)求每行的最大值 3.find (1)find(X)若X为行向量则得出X中所有非零元素所在的位置(按行)若X为列向量或矩阵则得出X中所有非零元素的位置(按列)(2)ind = find(X, k)/ind = find(X,k,'first') 返回前k个非零元的指标ind = find(X,k,'last') 返回后k个非零元的指标 (3)[row,col] = find(X) row代表行指标,col代表列指标 [row,col,val] = find(X) val表示查找到对应位置非零元的值 [row,col] = find(A>100 & A<1000) 找出满足一定要求的元素 4.reshape (1)B = reshape(A,m,n) 把A变成m*n的矩阵 5.sort (1)B = sort(A) 把A的元素按每列从小到大的顺序排列组成新矩阵

(2)B = sort(A,dim) dim=1同(1); dim=2 把A按每行从小到大的顺序排列组成新矩阵 6.cat (1)C = cat(dim, A, B) dim=1相当于[A;B];dim=2相当于[A,B] (2)C = cat(dim, A1, A2, A3, A4, ...) 类推(1) 7.meshgrid (1)[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。(2)[X,Y] = meshgrid(x) (1)y=x中情形 8.diag (1)X = diag(v,k) 向量v作为X的第k对角线上的元素X的其他元素为零(2)X = diag(v) (1)中k=0的情况 (2)v = diag(X,k) v为矩阵X的第k对角线的元素组成的列向量 (4)v = diag(X) (3)中k等于零的情况

Matlab中常见数学函数的使用

给自己看的----Matlab 的内部常数(转) 2008/06/19 14:01 [Ctrl C/V--学校 ] MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf 或 inf 无穷大 Matlab 的常用内部数学函数

我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’) 即:maple(‘convert(表达式,form)’)将表达式转换成form的表示方式 maple(‘convert(表达式,form, x)’)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 如何用Matlab进行变量替换 syms 表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式) 如何用matlab进行复数运算 a+b*i 或 a +b*j表示复数a+bi 或a+bj real(z)求复数z的实部 imag(z)求复数z的虚部 abs(z)求复数z的模 angle(z)求复数z的辐角, conj(z)求复数z的共轭复数 exp(z)复数的指数函数,表示e^z 如何在matlab中表示集合 [a, b, c,…] 表示由a, b, c,…组成的集合(注意:元素之间也可用空格隔开) unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 也可调用maple的命令,格式如下: maple('{a, b, c,…}')表示由a, b, c,…组成的集合 下列命令可以生成特殊的集合: maple(‘{seq(f(i),i=n..m)}’)生成集合{f(n), f(n+1), f(n+2), … , f(m)} 如何用Matlab求集合的交集、并集、差集和补集

matlab软件的使用方法

MATLAB 软件使用简介 默认分类2007-03-15 21:26:49 阅读4106 评论8 字号:大中小订阅 MATLAB 软件使用简介 MATLAB 是一个功能强大的常用数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际最优秀的科技应用软件之一。这里主要以适用于Windows操作系统的MATLAB5.3版本向读者介绍MATLAB 的使用命令和内容。 一、MATLAB 的进入/退出 MA TLAB 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动MATLAB命令的图标, 用鼠标单击它就可以启动MATLAB系统,见图2.1。 图2.1 启动MA TLAB 启动MATLAB后, 屏幕上出现MATLAB命令窗口: 图2.2 MA TLAB命令窗口 图2.2的空白区域是MATLAB 的工作区(命令输入区), 在此可输入和执行命令。 退出MATLAB系统像关闭Word文件一样, 只要用鼠标点击MATLAB系统集成界面右上角的关闭按钮即可。 二、MATLAB 操作的注意事项 l 在MA TLAB工作区输入MATLAB命令后, 还须按下Enter键, MA TLAB才能执行你输入的MA TLAB命令, 否则MA TLAB不执行你的命令。 l MATLAB 是区分字母大小写的。 l 一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。(以下用↙表示回车)。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。如: x= 2 + 3 ↙x=5 x = 2 + 3 ; ↙不显示结果5 l 在MA TLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达到换行的目的。如: q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)… -5x+1/2-567/(x+y) l MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。 l MATLAB 中不需要专门定义变量的类型,系统可以自动根据表达式的值或输入的值

matlab基本使用方法

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如:>> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理: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):正切函数

最新Matlab中常见数学函数的使用

给自己看的----Matlab的内部常数(转) 2008/06/19 14:01[Ctrl C/V--学校 ] MATLAB基本知识 Matlab的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或inf 无穷大 Matlab的常用内部数学函数

如何用matlab进行多项式运算 (1)合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量factor(表达式) (3)展开 syms 表达式中包含的变量 expand(表达式) 我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’) 即:maple(‘convert(表达式,form)’)将表达式转换成form的表示方式 maple(‘convert(表达式,form, x)’)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 如何用Matlab进行变量替换 syms 表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式) 如何用matlab进行复数运算 a+b*i 或 a +b*j表示复数a+bi 或a+bj real(z)求复数z的实部 imag(z)求复数z的虚部 abs(z)求复数z的模 angle(z)求复数z的辐角, conj(z)求复数z的共轭复数 exp(z)复数的指数函数,表示e^z 如何在matlab中表示集合 [a, b, c,…] 表示由a, b, c,…组成的集合(注意:元素之间也可用空格隔开) unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 也可调用maple的命令,格式如下: maple('{a, b, c,…}')表示由a, b, c,…组成的集合 下列命令可以生成特殊的集合: maple(‘{seq(f(i),i=n..m)}’)生成集合{f(n), f(n+1), f(n+2), … , f(m)} 如何用Matlab求集合的交集、并集、差集和补集

matlab 基础函数用法总结

1、Size 函数用法 例如:1,2,3;4,5,6]是一个2*3的矩阵,则: d = size(X); %返回矩阵的行数和列数,保存在d中 [m,n] = size(X)%返回矩阵的行数和列数,分别保存在m和n中 m = size(X,dim);%返回矩阵的行数或列数,dim=1返回行数,dim=2返回列数 2、Corrcoef 函数用法 corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x 与y的相关系数和y与x的相关系数,两个是相等的 3、sort函数用法 sort(X) 功能:返回对向量X中的元素按列升序排列的新向量。 [Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序 4、Legend 函数用法 legend(string1,string2,string3,┈) 分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。 例如: plot(x,sin(x),?.b?,x,cos(x),?+r?) legend(…sin?,?cos?) //这样就可以把”.”标识为”sin”,把”+”标识为“cos” 5、find 函数用法 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find(X, k, 'last') 5. [row,col] = find(X, ...) 6. [row,col,v] = find(X, ...) 说明: 1. ind = find(X)

MATLAB 基本操作和简单语句输入

实验一基本操作和简单语句输入 一、实验目的和要求 1、熟悉MATLAB的命令窗口 2、掌握MATLAB的一些基本操作,能够进行一般的数值计算 3、实现语句的重调和修改 二、实验内容和步骤 1、启动MATLAB 2、观察MATLAB窗口的组成部分 (1)了解菜单栏各菜单项的功能,用书变打开MA TLAB的各个菜单,在状态栏里显示当前鼠标所指的菜单项的含义 (2)用鼠标指向常用工具栏的每个工具按钮,了解各个工具按钮的含义 3、命令窗口的打开和关闭 (1)查看窗口的打开和关闭 (2)在命令窗口中输入命令a=3;b=4;y=a*b+a/b,然后回车,查看命令显示结果 (3)利用MATLAB中编辑命令行事常用的按键功能,调出上一语句,对它进行修改(如把分号改成逗号,看运行结果),并把运行结果复制到word中保存。 >> a=3;b=4;y=a*b+a/b, y = 12.7500 >> a=3,b=4,y=a*b+a/b, a = 3 b = 4 y = 12.7500 (4)关闭命令窗口

(5)打开命令窗口 4、使用MATLAB帮助 熟悉MATLAB的帮助系统,通过帮助系统了解有关内容 5、在命令窗口中输入demo,将出现MA TLAB的演示窗,通过演示窗,对MATLAB的功能进一步的浏览。 三、试验环境 计算机MA TLAB软件 四、练习 1、调出MATLAB\stateflow的演示实例

2、计算y=x^3+(x-0.98)^2/(x+1.25)^3-5(x+1/x),x=2,x=3时的值 3、计算cos60?-√(9-√2) 4、已知a=3,A=4,b=a^2,B=b^2-1,c=a+A-2B,C=a+B+2c,求C

Matlab用法大全

Matlab用法大全 1求取系统单位阶跃响应:step() step()函数的用法 y=step(num,den,t):其中num和den分别为系统传递函数描述中的分子和分母多项式系数,t为选定的仿真时间向量,一般可以由t=0:step:end等步长地产生出来。该函数返回值y为系统在仿真时刻各个输出所组成的矩阵 [y,x,t]=step(num,den):此时时间向量t由系统模型的特性自动生成, 状态变量x返回为空矩阵。 [y,x,t]=step(A,B,C,D,iu):其中A,B,C,D为系统的状态空间描述矩阵,iu用来指明输入变量的序号。x为系统返回的状态轨迹。 2h = tf([1 1],[1 2 5]); [num,den] = tfdata(h,'v') 3a(:,j)表示a的j列的所有行元素 a(i,:)表示i行的所有列元素 4a=[]创建空矩阵 5 eval ()函数的功能就是将括号内的字符串视为语句并运行 例如:eval ('y1=sin(2)')就是相当于在matlab命令窗口输入了y1=sin(2)这条命令。 多在循环中使用,可以对多个名字有规则的变量或文件进行操作, 例一: for x=1:5 eval (['y',num2str(x),'=',num2str(x^2),';']) end 以上语句等价于执行以下5句: ynum2str(1)=num2str(1^2); ynum2str(2)=num2str(2^2); ynum2str(3)=num2str(3^2); ynum2str(4)=num2str(4^2); ynum2str(5)=num2str(5^2); 例二: subplot(711);plot(t,y);title('原始信号’); for i=1:6 subplot(7,1,i+1); plot(t,imf(i,:)); eval (['title(''IMF',int2str(i),''');']); end ------------------------- 以上6行程序实际上是执行以下7条命令 subplot(711);plot(t,y);title('原始信号'); subplot(7,1,2);plot(t,imf(1,:));title('IMF1'); subplot(7,1,3);plot(t,imf(2,:));title('IMF2'); subplot(7,1,4);plot(t,imf(3,:));title('IMF3'); subplot(7,1,5);plot(t,imf(4,:));title('IMF4');

MatLab常用函数大全

1、求组合数 C,则输入: 求k n nchoosek(n,k) 例:nchoosek(4,2) = 6. 2、求阶乘 求n!.则输入: Factorial(n). 例:factorial(5) = 120. 3、求全排列 perms(x). 例:求x = [1,2,3]; Perms(x),输出结果为: ans = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 4、求指数 求a^b:Power(a,b) ; 例:求2^3 ; Ans = pow(2,3) ; 5、求行列式 求矩阵A的行列式:det(A); 例:A=[1 2;3 4] ; 则det(A) = -2 ; 6、求矩阵的转置 求矩阵A的转置矩阵:A’ 转置符号为单引号. 7、求向量的指数 求向量p=[1 2 3 4]'的三次方:p.^3 例: p=[1 2 3 4]' A=[p,p.^2,p.^3,p.^4] 结果为:

注意:在p 与符号”^”之间的”.”不可少. 8、求自然对数 求ln(x):Log(x) 例:log(2) = 0.6931 9、求矩阵的逆矩阵 求矩阵A 的逆矩阵:inv(A) 例:a= [1 2;3 4]; 则 10、多项式的乘法运算 函数conv(p1,p2)用于求多项式p1和p2的乘积。这里,p1、p2是两个多项式系数向量。 例2-2 求多项式43810x x +-和223x x -+的乘积。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; c=conv(p1,p2) 11、多项式除法 函数[q ,r]=deconv(p1,p2)用于多项式p1和p2作除法运算,其中q 返回多项式p1除以p2的商式,r 返回p1除以p2的余式。这里,q 和r 仍是多项式系数向量。 例2-3 求多项式43810x x +-除以多项式223x x -+的结果。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; [q,r]=deconv(p1,p2) 12、求一个向量的最大值 求一个向量x 的最大值的函数有两种调用格式,分别是:

matlab基本语句

matlab 基本语句 1.循环语句for for i=s1:s3:s2 循环语句组 end 解释:首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一次循环。 例:求1到100的和,可以编程如下: sum=0 for i=1:1:100 sum=sum+i end 这个程序也可以用while语句编程。 注:for循环可以通过break语句结束整个for循环. 2.循环语句while 例:sum=0;i=1; while(i<=100) sum=sum+i;i=i+1; end 3.if语句 if(条件) 语句 end if(条件) 语句 else 语句 end if(条件) 语句 elseif 语句 end 4.关系表达式: =,>,<,>=,<=,==(精确等于)

5.逻辑表达式:|(或),&(且) 6.[n,m]=size(A)(A为矩阵) 这样可以得到矩阵A的行和列数 n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A的行与列数这两个数字中的最大值。 7.!后面接Dos命令可以调用运行一个dos程序。 8.常见函数: poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。如 a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。 compan():可以求矩阵的伴随矩阵. sin()等三角函数。 MATLAB在数学建模中的应用(3) 一、程序设计概述 MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级程序设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的编程效率比C/C++语言要高得多。 MATLAB编程环境有很多。常用的有: 1. 命令窗口 2. word窗口 3. M-文件编辑器,这是最好的编程环境。 M-文件的扩展名为“.m”。M-文件的格式分为两种: ①l M-脚本文件,也可称为“命令文件”。 ②M-函数文件。这是matlab程序设计的主流。l 保存后的文件可以随时调用。 二、MATLAB程序结构 按照现代程序设计的观点,任何算法功能都可以通过三种基本程序结构来实现,这三种结构是:顺序结构、选择结构和循环结构。其中顺序结构是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进行不同的处理,可以使用选择结构。如果需要反复执行某些程序段落,可以使用循环结构。 1 顺序结构 顺序结构是由两个程序模块串接构成。一个程序模块是完成一项独立功能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。 看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执行<程序模块1>,然后执行<程序模块2>。 实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。 2 选择结构 在MATLAB中,选择结构可由两种语句来实现。

MATLAB S函数的调用实例

期末作业 1.求解微分方程???? ?????=++++=++=8102432 1.31. 232221.1x x x x x x x x x x x ,初始条件1230x x x ===。要求交mdl 文件及仿真结果的截图。 解:用Simulink 连接的仿真图如下所示: 求解出的x1,x2,x3的解如下图(a )所示的仿真结果: 2.当电源电压)30100 sin(10)(+=t t x πV 时,求解表达式y(t)的波形:

y x dt t dy 314)(-+=,其中y(0)=1。要求交mdl 文件及仿真结果的截图。 解:用Simulink 连接的仿真图如下所示: 仿真结果如下图(b )所示: 3.使用S 函数实现y=5*x+3,建立仿真模型并得出仿真结果。要求交mdl 文件,S 函数及仿真结果的截图。 解:用Simulink 连接的仿真图如下所示: S 函数的代码如下: function [sys,x0,str,ts] = mysfun3 (t,x,u,flag) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes;

case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error(['Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs = 1; sizes.NumInputs = 1; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = []; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u) sys = []; function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u) sys = 5*u+3; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; 仿真结果如下图(c)所示:

Matlab使用方法和程序设计解析

实验一Matlab使用方法和程序设计 一、实验目的: 1、掌握Matlab软件使用的基本方法 2、熟悉Matlab的基本运算和程序控制语句 3、熟悉Matlab程序设计和基本方法 二、实验内容: 1、求多项式的根:p(x=x^4+2x^3+3x^2+5x+4 源程序: a=[12354]; b=roots(a 运行结果: 分析:

调用roots(a,求多项式的根 2、已知f=a^4*(b^2-c^2+b^4*(c^2-a^2+c^4*(a^2-b^2,试用符号运算的方法对其因式分解 源程序: syms a b c; f=a^4*(b^2-c^2+b^4*(c^2-a^2+c^4*(a^2-b^2; R=factor(f 运行结果: 分析: 调用factor(s对多项式进行因式分解 3、编写一个函数,完成求和:S=1+3+5+,,,,,,+2i+1 源程序: sum=0;

for i=1:2:1000; sum=sum+i; end sum 运行结果: 分析: 调用for循环完成求和,起始值为1,步长为2,终止值为1000 4、已知一传递函数。F(s=,试将其分解部分分式 源程序: num=[12]; den=[154]; [res,poles,k]=residue(num,den 运行结果:

分析: 调用residue(num,den进行分解部分分式,num为传递函数的分子,den为传递函数的分母。 三、实验总结: 本次实验使我掌握了Matlab软件使用的基本方法,熟悉了Matlab的基本运算和程序控制语句,熟悉Matlab程序设计和基本方法,让我将理论与实践相结合增强了自我动手能力,为以后的工作打下一定的基础。 实验二Matlab使用方法和程序设计 一、实验目的: 1、掌握如何使用MATLAB进行系统时域分析

相关主题
文本预览
相关文档 最新文档