《MATLAB基础与应用》课件_第1页
《MATLAB基础与应用》课件_第2页
《MATLAB基础与应用》课件_第3页
《MATLAB基础与应用》课件_第4页
《MATLAB基础与应用》课件_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章

MTALAB概述第二章

MATLAB基本语法第三章

MATLAB基本绘图

第四章

MATLAB数值计算

第五章

MATLAB基本程序设计

第六章MATLAB图形用户界面设计

第七章

MATLAB符号数学工具箱

第八章

Simulink仿真

第九章

MATLAB在信号与系统中的应用

第十章MATLAB在数字信号处理中的应用

第十一章MATLAB在通信原理中的应用1.2MATLAB的特点

1、解释执行

2、变量单一

3、语法限制不严格4、一流的数值计算功能5、图形功能强大6、强劲的工具箱是一个强大的功能演算性草稿纸1.3MATLAB的组成

MATLAB软件由四部分组成:

1、基本部分(核心):程序主体和基本函数(约700多个)。2、专业扩展部分(工具箱):由大量专业函数组成(上千个函数)。已有30多个工具箱。1.3MATLAB的组成

MATLAB软件由四部分组成:

3、符号数学工具箱:基于Maple软件的符号数学引擎。4、仿真工具箱(Simulink):用于建立系统的数学模型和仿真分析等。1.4MATLAB界面

☆命令窗口(commandwindow)☆历史命令窗口(commandhistory)☆当前目录窗口(currentdirectory)☆工作区窗口(workspace)☆已安装部件窗口(launchpad)菜单(Menu)

窗口(Windows)

1.4MATLAB界面

菜单(Menu)命令窗口历史窗口和当前目录窗口工作区窗口和安装部件窗口当前路径1.5MATLAB通用命令

1、help(帮助)>>help(显示已安装的函数库和工具箱)>>help子目录名/库名/工具箱

如:helpgeneralhelpcomm

>>help函数名

如:helpsin

1.5MATLAB通用命令

2、lookfor关键字(查找)

如:lookforsound

3、clc(清除命令窗)4、who(列出工作区中的内存变量)

whos(列出工作区中的内存变量详情)5、clear(清除工作区中的变量和函数)1.5MATLAB通用命令

6、edit(调用编辑器,编写程序)7、!(运行外部程序)

如:!dir;!calc(计算器)

8、demo(MATLAB演示程序)9、quit(退出MATLAB)10、上下箭头(调出历史命令)第2章MATLAB基本语法

2.1变量

1、标识符:表示变量名,常量名,函数名和文件名的字符串(1)由字母、数字、下划线等符号组成,第一个字母必须是英文字母。(2)最长不要超过19个字符,多余截取。(3)文件名还必须符合操作系统的要求。(4)变量名大小写敏感。2.1变量

(5)MATLAB中的特殊变量名,应避免使用。例如:

ans----默认临时变量

pi----πeps----计算机中的最小数

inf----无穷大

NaN----非数或不定数(如:0/0)

i或j----虚数单位2.1变量

2、变量类型:(2)字符(串):用单引号表示。如:a=’abc’

实际上是一个由个字符的ASCII码组成的行向量。2.1变量

3、矩阵◆MATLAB中的变量或常量都代表一个矩阵,所有的变量运算其实都是矩阵运算。单个值实际上是1*1阶矩阵。◆矩阵元素可以是数值(实数或复数)或字符串。◆一个由矩阵表示的变量可以是一个数、一组数、一个文件(如语音)、一幅图象等。2.1变量

3、矩阵◆矩阵(Matrix)与数组(Array)的关系:矩阵运算有着严格理论数组运算一般指元素运算2.1变量

4、变量的查看:who/whos5、变量的保存和恢复:save文件名(缺省后缀为.mat)例如:savemyvarload文件名例如:loadmyvar2.2矩阵的赋值1、矩阵的直接赋值(1)基本赋值

1)使用[]2)同一行元素用空格或‘,’隔开

3)不同行用‘;’隔开

例如:a=[123;456](2)复数的赋值:例如:z=1+2i或1+2jz=[1+2i3+4i]z=[13]+[24]*i2.2矩阵的赋值注意:①赋值结尾为“;”则不显示结果。②一行不够时,可用“…”换行。③矩阵的阶数也可通过下列函数获得:对于一维,m=length(a)为矩阵a的长度。例如:a=[123]length(a)为32.2矩阵的赋值注意:③矩阵的阶数也可通过下列函数获得:对于二维,[m,n]=size(a),m为行数,n为列数例如:a=[123;456]size(a)为[23]2.2矩阵的赋值2、矩阵元素的赋值(1)元素用(m,n)的形式表示第m行n列的元素值,可直接引用和赋值。例如,a(2,1)=4,若将其改为9,则可用a(2,1)=9。注意:如果元素下标超出原矩阵的维数,矩阵将自动扩大,多出的元素自动为0。

2.2矩阵的赋值2、矩阵元素的赋值(2)给全行或全列赋值:用“:”代替行或列。如:a(4,:)=[11121314];

a(:,5)=[5;8;10;12]注意:行数或列数必须与原矩阵相同。2.2矩阵的赋值3、矩阵的变换(1)抽取:由原矩阵中的部分元素构成新矩阵。如:b=a([2,4],[1,3])

表示第2,4行与第1、3列交叉元素组成新矩阵。2.2矩阵的赋值3、矩阵的变换(2)抽去:使用空矩阵[](无元素),将矩阵整行/列删除。如:a([2,4],:)=[]

将2、4行删除

a(:,[2])=[]

将第2列删除2.2矩阵的赋值3、矩阵的变换(3)组合:由多个矩阵组成一个新矩阵,但行列应正好。如:a=[123;456],b=[789;101112],c=[ab],d=[a;b]。(4)转置:b=a’(行变列)例如:a=[123;456],则a’=[14;25;36]2.2矩阵的赋值(5)排列:b=a(:)将所有列排成一列。例如:a=[123;456],a(:)=[1;4;2;5;3;6]

若先转置再排列,即实现按行排列。(6)变换函数:fliplr(a)(矩阵左右翻转)(flip翻leftright)

flipud(a)(矩阵上下翻转)

。。。。。。3、矩阵的变换2.2矩阵的赋值4、间隔赋值(适合批量数据)(1)变量=(first:increment:last)形式如:t=(0:0.1:1)则t=[0,0.1,0.2,…,1](2)线性间隔函数linspace(first,last,num)

从first开始到last结束共num个元素,间隔为(last-first)/(num-1)

如:t=linspace(0,1,11),t=[0,0.1,…,1]2.2矩阵的赋值4、间隔赋值(适合批量数据)(3)对数间隔函数logspace(first,last,num)

从10first开始到10last结束共num个元素如:t=logspace(0,1,11),t=[100,100.1,…,101]2.2矩阵的赋值5、基本矩阵(1)空阵:[](当操作无结果时,返回空阵)(2)全0矩阵:zeros(m,n)

例如:zeros(2,3)=[000;000](3)全1矩阵:ones(m,n)(4)单位矩阵:eye(n)(对角线为1的方阵)(4)随机矩阵:rand(m,n)2.3矩阵的初等运算1、加减法:矩阵的加减就是对应元素的加减。如:a=[123];b=[456],则a+b=[578],如果矩阵与一常数(标量)相加减,则把该常数看成是同阶的矩阵。例如:a+5=[678]2.3矩阵的初等运算2、乘法(1)矩阵相乘:m×p阶矩阵A与p×n阶矩阵B的乘积是一个m*n阶矩阵。例如:a=[123];b=[456]则:a*b’=[20].(2)矩阵与常数相乘等于每个元素乘以该常数,例:2*a。2.3矩阵的初等运算2、乘法(3)矩阵元素相乘(数组相乘):使用“.*”相乘的两个矩阵阶数应相同。例如:a=[123];b=[456]

则:a.*b=[41018].2.3矩阵的初等运算3、除法(1)矩阵的除法右除,“/”:A/B=A*B-1(B的逆矩阵inv(B)),

B必须是方阵,A与B列应相等。左除,“\”:A\B=A-1*B,A必须是方阵,A与B行应相等。

(2)矩阵除以常数,等于每个元素除以常数,使用普通除法/。2.3矩阵的初等运算3、除法(3)矩阵元素的除法(数组相除):“./”:A./B为A各元素除以B中各元素。“.\”:A.\B=B./A2.3矩阵的初等运算4、乘方(1)矩阵乘方:(乘方是乘法的扩充,为保证合法性,要求矩阵为方阵)a)A^标量:例A^2,A^0.2b)标量^A:例A=[12;34],2^A=[10.482714.1519;21.227831.7106]2.3矩阵的初等运算4、乘方

(2)元素的乘方:

a)A.^标量:例A=[12],A.^2=[14]b)标量.^A:例3.^A=[39]c)A.^B:A、B同阶例A=[12],B=[34],则A.^B=[116]2.4矩阵的基本运算函数1、矩阵的运算函数

指数函数:expm()对数函数:logm()开方函数:sqrtm()注意:变量必须是方阵2.4矩阵的基本运算函数2、矩阵元素的运算◆三角函数(25个):例如:t=[123],y=sin(t)◆指数/对数函数(7个):例如:exp()◆复数函数(8个):例如:abs()取模◆取整函数(7个):例:round()四舍五入2.5矩阵的逻辑运算1、关系运算:共6种:〉(大于)〈(小于)

〉=(大于等于)〈=(小于等于)

==(等于)~=(不等于)◆比较是在元素间进行的。◆矩阵必须同阶◆比较结果仍为矩阵,且元素值为0(假)或1(真)例如:a=[12],b=[21],则a〉b=[01],a==b=[00]2.5矩阵的逻辑运算2、逻辑运算:共有四种运算符号:

&(与)、|(或)、~(非)、xor(异或)◆矩阵元素值必须为逻辑值(0、1)◆运算是在元素间进行的。◆比较结果仍为矩阵例如:a=[10],b=[01],则:a&b=[00]第3章MATLAB基本绘图3.1基本二维绘图

一、plot-----基本二维绘图函数1、格式1:plot(y)功能:y是一向量,以y中元素的下标为横坐标,元素值作为纵坐标,各点以直线相连。例如:y=[12321];plot(y)3.1基本二维绘图

►如果格式1中的y为复数矩阵,则相当于plot(real(y),imag(y))。►如果y为多行或多列矩阵,则绘制多条曲线。例如:y2=[sin(2*pi*t);cos(2*pi*t)];plot(t,y2);2、格式2:plot(x,y)功能:x,y具有相同的长度,绘图时以x元素值为横坐标,y元素值作为纵坐标,各点以直线相连。例如:t=(0:0.05:1);y=sin(2*pi*t);plot(t,y);3.1基本二维绘图

3、格式3:plot(x1,y1,x2,y2,…)功能:相当于,plot(x1,y1),plot(x2,y2),…,绘制多条曲线在一个图中。例如:t1=(0.5:0.05:1.5);y1=2*sin(2*pi*2*t1);plot(t,y,t1,y1);3.1基本二维绘图

4、格式4:plot(y,’s’)plot(x,y,’s’)plot(x1,y1,’s1’,x2,y2,’s2’…)s为一字符串,用于设置绘图颜色和线型(见P32)例如;plot(t,y,’*b’);plot(t,y,’xr’,t1,y1,’:k’)线型、点型和颜色颜色说明数据点说明数据点说明线型说明r(red)红色+加号^向上三角形-实线g(green)绿色o小圆圈>向右三角形--虚线b(blue)蓝色*星号<向左三角形:点线c(cyan)青色.实点v向下三角形-.点划线m(magenta)品红x交叉号h正六角星y(yellow)黄色d菱形p正五角星k(black)黑色s正方形w(white)白色3.1基本二维绘图

二、多曲线绘图控制1、图形保持格式:holdon(off)功能:用于保持当前绘图,以便在同一坐标上再绘制另外图形。例如:plot(t,y);holdon;plot(t1,y1)3.1基本二维绘图

2、子图控制格式:subplot(m,n,p)功能:将窗口分成m(行)*n(列)个子图,并指定在第p个子图中绘图例如:subplot(3,2,2);plot(t,y);subplot(3,2,3);plot(t1,y1);3.1基本二维绘图

3、窗口控制格式:figure(n)功能:打开一个新窗口用于当前绘图,n为该窗口的句柄(唯一标识),用于在多个窗口中绘图。例如:figure(1);plot(t,y);figure(2);plot(t1,y1);3.1基本二维绘图

1、title(‘s’)——

给图形加标题

例如:plot(t,y);title(‘sinewave’)

2、xlabel(‘s’)——

给x轴加标注例如:xlabel(‘t(s)’)3、ylabel(‘s’)——

给y轴加标注例如:ylabel(‘V(mv)’)

三、图形控制

控制标题,坐标轴,图例,3.1基本二维绘图

4、text(x,y,’s’)—在图形指定位置(x,y)加标注

例如:text(0.5,0.8,’t=0.5sv=0.8’)5、

legend(‘s1’,’s2’,…)——

添加图例例如:plot(t,y,t1,y1);legend(‘sine’,’cosine’)

6、gridon(off)—

打开、关闭坐标网格线例如:gridoff

7、boxon(off)---图像外边框开/关3.1基本二维绘图

9、axis——

控制坐标轴的刻度

■axis([xmin,xmax,ymin,ymax])

设定坐标轴的最大最小值例如:plot(t,y);axis([-12–22])■axis(‘equal’)将两轴设为相等。■axison(off)显示或关闭坐标轴8、zoomon(off)---允许放大/缩小

3.1基本二维绘图

句柄:在matlab中创建对象时,系统自动的为每个对象分配一个唯一的标识符。通过该标识符指向某个具体的对象,以获取或者设置该对象有关属性。比较常用的句柄:图形句柄。四、图形属性控制

3.1基本二维绘图

四、图形属性控制

h=figure(1)或plot()或legend()或axes()……set(h,

属性1,属性值1,

属性2,属性值2,...);h称为句柄Color属性:字符的颜色。该属性的属性值是一个1x3颜色向量。FontName属性:字体的名称。如‘TimesNewRoman’与‘宋体'等。FontSize属性:字号大小。默认以pt为单位,属性值应该为实数。3.1基本二维绘图

常用的属性:

FontNameFontWeightFontSizeLineWidthLineStyleBoxXtickYtickXticklabelYticklabelUnitsPosition

Colorgcfgca更多属性参考matlab官网:/help/matlab/ref/figure-properties.html极坐标系下绘图:polar3.2特殊二维绘图调用格式说明polar(theta,rho)theta代表弧度,rho代表极坐标矢径polar(theta,rho,s)s与plot命令相似[x,y]=pol2cart(t,r)将极坐标数据点转化为直角坐标系下的数据点[t,r]=cart2pol(x,y)将直角坐标系数据点转化为极坐标下的数据点3.2特殊二维绘图例题:在极坐标系下画出下面函数的图形程序如下:t=linspace(0,24*pi,1000);r=exp(cos(t))-2*cos(4.*t)+(sin(t./12)).^5;polar(t,r)[x,y]=pol2cart(t,r);figureplot(x,y)3.2特殊二维绘图例如:stem(t,y)2、bar–––

绘制直方图

例如:bar(t,y)特殊图形库(specgraph)1、stem––––

绘制火柴杆图3、stairs––––

绘制阶梯图

例如:stairs(t,y,’r’)

3.2特殊二维绘图4、area––––区域图例如:x=ones(1,5);area(x)

注意同bar的区别5、pie––––

饼图

例如:x=[123211];y=[001000];pie(x,y)

还有其它特殊函数。。。3.3三维绘图1、plot3——空间曲线绘制格式:plot3(x,y,z,’s’)例如:z=0:0.1:4;x=cos(z);y=sin(z);plot3(x,y,z);3.3三维绘图2、空间曲面的绘制[X,Y]=meshgrid(x,y)表示生成平面网格坐标矩阵mesh(Z)通过直线连接相邻点构成三维曲面surf(Z)通过小平面接相邻点构成三维曲面shadingflate或shadinginterp:平滑掉小方格shadingfaceted3.3三维绘图2、空间曲面的绘制例题:绘制马鞍面:z=-x4+y4-x2-y2-2xy程序如下:x=-4:0.25:4;y=-5:0.25:5;[X,Y]=meshgrid(x,y);Z=-X.^4+Y.^4-X.^2-Y.^2-2*X.*Y;mesh(Z)title('马鞍面')xlabel('x'),ylabel('y'),zlabel('z')3.3三维绘图3、视角控制view命令:view(αz,βl)默认α=-37.5°,β=30°等价于view(3)正视图:view(0,0),沿-y轴方向观察侧视图:view(90,0),沿x轴方向观察俯视图:view(0,90),沿z轴方向观察view(2)view([x,y,z]):沿向量[x,y,z]观察。3.4图像的保存用于图像保存的命令有:print和saveasprint(图形句柄,存储格式,文件名);print(gcf,'-dtiff','a.tif');saveas(图形句柄,文件名,文件格式);

saveas(gcf,'test.jpg','jpg');

saveas(gcf,'test.fig','fig');

edit-copyfigure再粘贴到word等中。作业用相关函数绘制三条曲线。要求:1.三条曲线在同一图形窗口内以不同的颜色、不同的线型显示。2.图形要有:坐标轴的标签,图例,标题。3.非中文字符一律采用’TimesNewRoman’,中文字符用宋体。文字大小自己设置。4.标题字体加粗,图例字体倾斜。5.设置好合适的线宽,要求在纸上可见。5.将代码和图片打印到A4纸上。4月21号上课时交上来。效果下图:例题设有函数,绘制该曲线图,并标记处最大值点。t=0:0.01:4;y=-t.*(t-0.5).*(t-4);plot(t,y,‘LineWidth’,1.5);max求最大值:m=max(y);find查找:index=find(y==m);

思考?

如何用plot函数绘制出一条长度一定,且与x轴或y轴平行的直线?

第4章MATLAB编程基础

4.1数据类型4.1.1MATLAB基本数值类型4.1.2逻辑类型和关系运算4.1.3字符串4.1.4元胞数组4.1.5结构体4.2M文件及程序调试4.1.1

MATLAB基本数值类型数据类型说明字节数double双精度数据类型8sparse稀疏矩阵数据类型N/Asingle单精度数据类型4uint8无符号8位正数1uint16无符号16位正数2uint32无符号32位正数4uint64无符号64位正数8int8有符号8位正数1int16有符号16位正数2int32有符号32位正数4int64有符号64位正数8变量数据类型4.1.1

MATLAB基本数值类型class获取变量或对象的类型class(变量)whos获取变量的名字、大小、类型信息whos显示所有变量的信息whos变量/whos(‘变量列表’)只显示列出来的变量信息who只显示变量名低版本的matlab不支持非双精度数据的四则运算!4.1.1

MATLAB基本数值类型数据类型说明ans最近运算的默认结果eps浮点数的相对精度realmax最大实数的绝对值realmin最小实数的绝对值pi常数3.14159…i,j虚数单位Inf无穷大NaN非数(NotaNumber)matlab的预定义常量4.1.1

MATLAB基本数值类型整数类型数据的运算函数函数说明bitand位“与”运算bitcmp求补码bitor位“或”运算bitmax最大的浮点正数数值bitxor位“异或”运算bitset将指定的数据位设置为1bitget获取指定的位数值bitshift数据位移操作4.1.2逻辑类型和关系运算创建逻辑类型数据的函数函数说明logical将任意类型的数组转换成逻辑类型组数,非零为真,零为假。true产生逻辑真数组false产生逻辑假数组通过关系运算操作也可以得到逻辑数据类型数据!逻辑数据类型仅具有TRUE(1)和FALSE(0)两个值。4.1.2逻辑类型和关系运算matlab逻辑运算符数据类型说明&&具有短路作用的逻辑与操作,仅能处理标量||具有短路作用的逻辑或操作,仅能处理标量&元素与操作|元素或操作~逻辑非操作xor逻辑异或any存在元素非零时,返回真all所有元素非零时,返回真matlab关系运算符:==,~=,<,>,<=,>=4.1.3字符串创建字符串时,只要将字符串的内容用单引号包含起来就可以了。若需要在字符串中包含单引号,则需要在键入字符串内容时,连续键入两个单引号即可。c='Isn''it?’strcmpstrncmpstrcatstrvcatupperlowerblanksdeblanksisspaceisletterstr2numnum2tsreval(‘’)例题:4.1.3字符串t=0:0.02:10;%生成数据x=rand(6,length(t));%生成数据

fori=1:6subplot(3,2,i);plot(t,x(1,:),'color',[i/12,i/24,1-i/8]);ch=‘第i幅';title(ch);end例题2:如何用循环实现a1=1,a2=2,a3=3…fori=1:6ai=i;endfori=1:6ch=strcat('a',num2str(i));ch=i;end元胞数组是matlab一种特殊的数据类型,也成为广义矩阵。组成元胞数组的元素可以是任何一种类型的常数或者常量,每个元素可以具有不同的尺寸和内存占用空间。4.1.4元胞数组元胞数组的创建:

A={zeros(2,3,4),'Hello';17.35,1:20}

A=cell()创建空的元胞数组元胞数组的元素的访问:B=A(1,2)访问元胞B=A{1,2}访问元胞的内容结构体与C语言中的结构体类似。4.1.5结构体结构体的创建:S=‘JIM’;Student.age=25;S=uint16(3);

Student=struct(‘name’,’JIM’,’age’,25,’grade,uint16(1));结构体的访问:struct_name.expression或struct_name.(expression)

SStudent.(‘name’)

4.2M文件及程序调试

4.2.1流程控制4.2.2脚本文件与函数文件4.2.3M文件调试4.2.1流程控制

for、while、if-else-end、switch-case和try-catchfori=1:1:10i=[15789]

组命令;endwhile表达式

组命令;endi++;i=i+1;4.2.1流程控制if表达式

组命令endif表达式

组命令1else

组命令2endif表达式

组命令1elseif

组命令2……else

组命令nend4.2.1流程控制switch表达式casetest1组命令1casetest1……casetestk组命令kotherwise

组命令end4.2.1流程控制try组命令1catch组命令2end只有当matlab在执行命令1出错时,组命令2才会被执行。其他常用命令return

如果在被调用的函数中插入了return,可以强制结束执行该函数。inputinput指令将matlab的“控制权”暂时交给用户,用户通过键盘输入数值、字符串或表达式,并经“回车”把输入内容输入到工作空间,同时交还“控制权”。v=input(‘message’)%将用户输入的内容赋给变量vv=input(‘message’,’s’)%将用户输入的内容作为字符

串赋给变量v

message是指显示在屏幕上的字符串,一般器提示作用。

其他常用命令keyboard

当程序遇到keyboard是,matlab将“控制权”交给键盘,用户可以从键盘输入各种合法的matlab指令,只有当用户使用return指令结束输入后,“控制权”才交还给程序。

与input不同的是,它允许输入任意多个matlab指令,而input只能输入付给变量的“值”。其他常用命令yesinputyesinput是一个只能指令,它提供一个默认输入值,并可以对输入范围进行检查。v=yesinput(‘prompt’,’defualt’,’possib’)

prompt为文字提示,defualt为默认值,possib为可选值的范围。其他常用命令pausepause暂时执行程序,等待用户按任意键继续。pause(n)在继续执行之前,暂停n秒。6.break和continueerror和warningerror(‘message’)显示出错信息message,终止程序。errortrap错误发生后,程序继续执行与否的双位开关。lasterr显示matlab自动判断的最新出错原因并终止程序。warning(‘message’)显示警告信息message,程序继续运行。lastwarn显示matlab自动给出的最新警告,程序继续运行。4.2.2脚本文件与函数文件脚本文件和函数文件都是m文件。脚本文件由一系列的指令和命令组成的纯文本格式的M文件,文件中的指令按照出现在脚本文件中的顺序依次执行。脚本文件没有输入参数也没有输出参数。脚本文件处理的数据或文件必须在matlab的公共工作空间。在命令窗口键入:edit可启动编译器editfilename打开m文件新建的脚本文件是一个空白的文档!4.2.2脚本文件与函数文件函数文件比脚本文件多了“函数声明行”。局部变量:全局变量:用global申明。editfunctionnameopenfunctionnametypefunctionname通过以上三条命令可以打开对应的函数,包括matlab自带的函数。4.2.3

M文件调试

当有语法错误的时候,应根据matlab错误提示进行修改。在没有语法错误的情况下,有两种方法调试。一、直接调试法将重点怀疑的语句后面的;去掉,是结果显示出来。增添显示某些关键变量的语句,包括disp。增添keyboard,查看函数空间的变量。4.2.3

M文件调试二、调试器的使用断点设置/清除:F12单步执行:F10跟踪进入函数:F11跳出函数:Shift+F11连续执行:F51、文件必须保存之后某些图标才处于使能状态。2、某些图标只有在调试状态下才会显示出来。4.2.3

M文件调试在调试状态,可以通过三种方法查看变量:1、将鼠标光标移至变量,等待片刻;2、通过命令窗口;3、通过工作空间;第5章MATLAB数值计算5.1多项式数值计算5.2方程的数值求解5.3数据统计与分析5.4数据分段插值5.5曲线拟合5.6函数的最大值与最小值5.7数值微分与积分5.8常微分方程的数值求解5.9相关分析和傅里叶分析5.10矩阵的分解5.1多项式数值计算在matlab中多项式:用系数向量来表示的。用poly函数可以多项式系数向量:poly(A)当A为向量时,生成以A中元素为根的多项式的系数向量;当A为矩阵时,创建A的特征多项式。poly2str(p,’x’)将系数向量转换成多项式符号形式。

多项式基本运算:加减直接用符号+-,没有函数。两个多项式向量大小必须相同了,因此低阶多项式必须补零。乘法:conv

p=conv(p1,p2)除法:deconv

[q,r]=deconv(p1,p2)q为商,r为’余数’p1=conv(q,p2)+r长除法:5.1多项式数值计算5.1多项式数值计算多项式求根:roots

roots(p)

求出多项式方程p(x)=0所有根;多项式求值:polyval()和polyvalm()

y=polyval(p,a)a为标量或向量

y=polyval(p,m)m为矩阵多项式的导数函数:polyder

dp=polyder(p)

返回p的导数多项式的系数dp=polyder(p,q)p*q的导数[n,m]=polyder(p,q)p/q的导数n为分子多项式系

数,m为分母多项式系数5.1多项式数值计算部分分式展开与合并:residue

[r,p,k]=residue(b,a)[b,a]=residue(r,p,k)合并展开5.2方程的数值求解多项式方程求解:直接用roots函数。线性方程组数值求解:Ax=bx=A\b或x=inv(A)*b非线性方程求解:fzero

x=fzero(fun,x0)x0为一个点时找出x0附近的零点(极点)x=fzero(fun,x0)x0为区间时找出区间内的零点(极点)非线性方程组数值求解:fsolve

X=fsolve(fun,x0)5.3数据统计与分析矩阵的最大值和最小值:max,min

m=max(A)

等价于m=max(A,[],1)计算列的最大值

m=max(A,[],2)

计算每行的最大值

[m,I]=max(A)I为最大值所在行/列的索引值矩阵的平均值与中值mean,median

m=mean(A)

m=median(A)等价于m=median(A,1)

计算列的中值m=median(A,2)计算行的中值5.3数据统计与分析矩阵元素求和与求积:um,prods=sum(A,dim)

用法同median

s=prod(A,dim)用法同median矩阵元素累加与累乘积:cumsum,cumprodcumsum(A,dim)cumprod(A,dim)用法同sum,prod矩阵元素累加与累乘积:stdstd(X)std(X,flag)std(X,flag,dim)flag=0:flag=1:5.3数据统计与分析元素排序:sorts=sort(A,dim)s=sort(A,dim,mode)mode=‘ascend’升序,默认mode=‘descend’降序[s,I]=sort(A,dim,mode)I表示元素的位置,I与A大小相同

5.4数据分段插值数据分段插值就是通过插值点,用折线或低次曲线连接起来,逼进原曲线。一维数据插值:interp1yi=interp1(x,y,xi,method)method:linear线性插值、nearest最近相邻点插值、spline三次样条函数插值、cubic三次多项式插值。二维数据插值:interp2zi=interp2(x,y,z,xi,yi,method)

5.5曲线拟合polyfit函数

polyfit(X,Y,N)根据输入数据X和Y生成一个N阶的拟合多

项式。

例题:某仪器对数据的采样结果为:2,7,12,17,22,17,32,42,47,52,57.求这组数据的拟合方程。

5.6函数的最大值与最小值

求最小值函数:fminbnd,fminsearch

一维:

x=fminbnd(fun,x1,x2)计算[x1,x2]区间内,fun的最小值

[x,fval]=fminbnd(fun,x1,x2)

多维:

x=fminsearch(fun,x0)

[x,fval]=fminsearch(fun,x0)[x,fval,exitflag,output]=fminsearch(fun,x0)

5.7数值微分与积分

微分:diff

dy=diff(y,n,dim)n表示阶数,dim=1按列计算微分,dim=2按行计算微分。

定积分被积函数连续:quad

q=quad(fun,a,b,)q=quad(fun,a,b,tol)tol表示精度被积函数离散:trapz

trapz(x,y)梯形法求数值积分

5.8常微分方程的数值求解ode23,ode45变步长的Runge-Kutta算法。[X,Y]=ode45(fun,[x0,xn],y0)

求解微分方程

functiondy=fdx(x,y)dy=5*y+(x+1)*cos(x)+(x-1)*sin(x);end5.9相关分析和傅里叶分析

cov(x,y)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论