matlab简单教程_第1页
matlab简单教程_第2页
matlab简单教程_第3页
matlab简单教程_第4页
matlab简单教程_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

1、.,1,MATLAB编程入门,.,2,学习方法,MATLAB,基础入门 MATLAB简介 MATLAB基本操作 MATLAB常用命令,设计提高 MATLAB数组运算 MATLAB矩阵运算 MATLAB程序设计,综合应用 MATLAB数值实验 MATLAB统计实验 MATLAB优化实验,.,3,课程目录,.,4,1. MATLAB简介,.,5,1. MATLAB简介,1.1 MATLAB发展历史,1.2 MATLAB应用领域,1.3 MATLAB工具箱,1.4 MATLAB安装文件,1.5 MATLAB操作界面,1.6 MATLAB文件类型,1.7 MATLAB常用命令,.,6,1. MATLA

2、B简介,MatlabMatrix Laboratory,Cleve Moler,MatlabMatrix Laboratory, 该语言是美国New Mexico大学计算机系主任Cleve Moler在70年代后期首先设计的. 并于80年代初开发了第二代专业版.,1984年, Cleve Moler和John Litter成立了Math works公司, 并开始把Matlab推向市场. (迈斯沃克公司),1.1 MATLAB发展历史,.,7,1. MATLAB简介,目前,Matlab 已经成为国际上最流行的科学与工程计算的软件 工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用

3、前景的全新的计算机高级编程语言,有人称它为“第四代”计算机语言。 就影响而言,至今仍然没有一个别的计算软件可与 Matlab 匹敌。,Mathematica Maple SAS SPSS Eviews LINGO LINDO,在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。,1.2 MATLAB应用领域,8,1. MATLAB简介,1.3 MATLAB工具箱,9,1. MATLAB简介,1.3 MATLAB工具箱,.,10,1. MATLAB简介,1.4 MAT

4、LAB安装文件,.,11,1. MATLAB简介,1.5 MATLAB操作界面快捷键F5运行,.,12,1. MATLAB简介,1.6 MATLAB文件类型,13,1. MATLAB简介,1.7 MATLAB常用命令,14,1. MATLAB简介,1.7 MATLAB常用命令,15,2. MATLAB语言基础,16,2. MATLAB语言基础,2.1 MATLAB数据类型,2.2 MATLAB数组运算,2.3 MATLAB向量运算,2.4 MATLAB矩阵运算,2.5 MATLAB字符串运算,2.6 MATLAB关系运算,2.7 MATLAB逻辑运算,.,17,2. MATLAB语言基础,2.

5、1 MATLAB数据类型,MATLAB,Matlab数据类型,1. 数值型,2. 字符字符串,3. 元胞数组,4. 架构数组,.,18,2. MATLAB语言基础,2.1 MATLAB数据类型变量,Matlab中变量名是以字母开头,可以由字母、数字或下划线组成 Matlab 区分大小写,它的命令和函数全是小写的 Matlab变量名不超过31个字符,19,2. MATLAB语言基础,2.1 MATLAB数据类型常量,20,2. MATLAB语言基础,2.1 MATLAB数据类型数字显示格式命令,.,21,2. MATLAB语言基础,2.2 MATLAB数组运算表达式,Matlab中的表达式由运算

6、符、函数、变量名和数字组成,Matlab 语句由变量和表达式组成,有两种常见形式:,形式1:表达式,形式2:变量=表达式,若不想显示形式1或2的运算结果,可在表达式后加分号“;”,22,2. MATLAB语言基础,2.2 MATLAB数组运算运算符,23,2. MATLAB语言基础,2.2 MATLAB数组运算数组的构造,x=0 1 3 5 7 9 10,x=0,1,3,5,7,9,10,x= 0 1 3 5 7 9 10,手动法数组用中括号,以空格或逗号为间隔输入元素,24,2. MATLAB语言基础,2.2 MATLAB数组运算数组的构造,x=0:0.5:2,x= 0 0.5000 1.0

7、000 1.5000 2.0000,冒号法a:步长:b a:b (默认 步长=1),y=0:5,y= 0 1.0000 2.0000 3.0000 4.0000 5.0000,25,2. MATLAB语言基础,2.2 MATLAB数组运算数组的构造,x=linspace(0,pi,12),x= 0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136 1.9992 2.2848 2.5704 2.8560 3.1416,函数法linspace(a,b,n) 从a开始,到b结束,包含n个数据元素的数组, a:(b-a)/(n-1):b ,26,2. MATLAB语言

8、基础,2.2 MATLAB数组运算数组的引用,x=1 2 3 4 5 x(1:3),ans= 123,x(n) 表示数组中的第n个元素 x(n1:n2) 表示数组中的第n1到n2个元素,27,2. MATLAB语言基础,2.2 MATLAB数组运算矩阵数组,A=2, 4, 6, 8;1 3 5 7; 0 0 0 0;1,0,1,0,以空格或逗号分隔,指定不同的列 以分号或回车分隔,指定不同的行,28,2. MATLAB语言基础,2.2 MATLAB数组运算四则运算,数组与标量间的四则运算,x=1 3 4; 2, 6, 5; 3 2,4,a=2*x-2,a= 0 4 6 2 10 8 4 2 6

9、,29,2. MATLAB语言基础,2.2 MATLAB数组运算四则运算,数组间的四则运算,必须具有相同的维数,对应元素进行运算 + - .* ./ .,a=1 3 4;2, 6, 5;3 2,4,b=2 3 1;4 1 2;4 5 3,c= 3 6 5 6 7 7 7 7 7,c=a+b,30,2. MATLAB语言基础,2.2 MATLAB数组运算四则运算,a=1 3 4;2, 6, 5;3 2,4,b=2 3 1;4 1 2;4 5 3,c= 2 9 4 8 6 10 12 10 12,c=a.*b,d=a./b,d= 0.5000 1.0000 4.0000 0.5000 6.0000

10、 2.5000 0.7500 0.4000 1.3333,a./b=b.a,31,2. MATLAB语言基础,2.2 MATLAB数组运算幂运算,数组的幂运算 .,a=1 3 4;2, 6, 5;3 2,4,c=a.2,c= 1 9 16 4 36 25 9 4 16,d= 19 29 35 29 52 58 19 29 38,d=a2,32,2. MATLAB语言基础,2.2 MATLAB数组运算幂运算,a=1 3 4;2, 6, 5;3 2,4,b=2 3 1;4 1 2;4 5 3,c= 1 27 4 16 6 25 81 32 64,c=a.b,33,2. MATLAB语言基础,2.3

11、 MATLAB向量运算点积,c=dot(a,b)c=ab,相当于a*b(a与b都是行向量),a=2 4 5 3 1,b=3 8 10 12 13,c= 137,c=dot(a,b),34,2. MATLAB语言基础,2.3 MATLAB向量运算叉积,c=cross(a,b)c=ab,a与b必须是3维向量,a=2 4 5,b=3 8 10,c= 0-54,c=cross(a,b),35,2. MATLAB语言基础,2.3 MATLAB向量运算混合积,由dot和cross两个函数共同完成abc=(ab) c,a=2 4 5,b=3 8 10,c= 0-54,c=0 -5 4,d=dot(a,cro

12、ss(b,c),36,2. MATLAB语言基础,2.3 MATLAB向量运算向量函数,37,2. MATLAB语言基础,2.4 MATLAB矩阵运算特殊矩阵,38,2. MATLAB语言基础,2.4 MATLAB矩阵运算矩阵加法,矩阵的四则运算,A=1 2;3 5;2 6,B=2 4;1 8;9 0,C= 3 6 4 13 11 6,C=A+B,39,2. MATLAB语言基础,2.4 MATLAB矩阵运算矩阵乘法,矩阵的四则运算,A=1 2;3 5;2 6,B=2 4 1; 8 9 0,D= 18 22 1 46 57 3 52 62 2,D=A*B,40,2. MATLAB语言基础,2.

13、4 MATLAB矩阵运算矩阵除法,在Matlab中矩阵的除法分左除“”和右除“/” X=AB 给出线性方程组 AX=B 的一个解 X=B/A 给出线性方程组 XA=B 的一个解,AB,B/A,sym(AB,r) = 5/7 1 9/7 -8/7 -1 -6/7 44/7 7 54/7,sym(B/A,r) = -2/7 8/7 13/7 1/7 17/7 25/7 4/7 26/7 37/7,A=,B=,41,2. MATLAB语言基础,2.4 MATLAB矩阵运算矩阵乘幂,矩阵的幂运算 ,A=21 31 20;78 20 21;17 34 31,C=A2,C= 3433 2074 1754

14、3555 3766 2631 3536 2312 2015,42,2. MATLAB语言基础,2.4 MATLAB矩阵运算矩阵转置、逆、行列式,矩阵的转置、逆运算及行列式运算,A=1 2 0;2 5 -1;4 10 -1,C=A,C= 1 2 4 2 5 10 0 -1 -1,D=inv(A),e=det(A),D= 5 2 -2 -2 -1 1 0 -2 1,e= 1,43,2. MATLAB语言基础,2.5 MATLAB字符串运算常用字符串函数,44,2. MATLAB语言基础,2.6 MATLAB关系运算,关系操作符, 大于 = 大于等于 = 等于 = 不等于 运算法则:若关系式成立,结

15、果为1; 若关系式不成立,结果为0。,A=1 4 3 5 7 B=2 6 9 0 7 A=B ans= 0 0 0 0 1,45,2. MATLAB语言基础,2.7 MATLAB逻辑运算,逻辑操作符, p2=0 0 5 1 3 2;,p=p1+p2,ans= 2*x5+5*x4+5*x3+5*x2+4*x+6,+、-、conv(p1,p2)、deconv(p1,p2)加减要补零,相同长度,poly2sym(p),50,3. MATLAB数值计算,3.1 多项式四则运算,p1=2 5 0 4 1 4; p2=0 0 5 1 3 2;,p=conv(p1,p2),ans= 10*x8+27*x7+

16、11*x6+39*x5+19*x4+33*x3+15*x2+14*x+8,+、-、conv(p1,p2)、deconv(p1,p2),poly2sym(p),51,3. MATLAB数值计算,3.1 多项式四则运算,p1=2 5 0 4 1 4; p2=0 0 5 1 3 2;,p,r=deconv(p1,p2),p= 0.40000.9200-0.4240 r= 0 0 0 0.8640 0.4320 4.8480,+、-、conv(p1,p2)、deconv(p1,p2),52,3. MATLAB数值计算,3.1 多项式求导运算,p1=2 5 0 4 1 4,h=polyder(p1),p

17、olyder(p),poly2sym(h),ans= 10*x4+20*x3+8*x+1,53,3. MATLAB数值计算,3.1 多项式求值运算,p1=2 5 0 4 1 4,h=polyval(p1,3,4),polyval(p,s) 数组规则 polyvalm(p,s) 矩阵规则,k=polyvalm(p1,3,4;4,6),h= 9343400 k= 4341462640 6264090394,54,3. MATLAB数值计算,3.1 多项式求根运算,p1=2 5 6 4 1 8,h=roots(p1),roots(p),h= -1.7640 -0.8679 + 1.3394i -0.

18、8679 - 1.3394i 0.5000 + 0.8001i 0.5000 - 0.8001i,55,3. MATLAB数值计算,3.1 多项式多项式函数,56,3. MATLAB数值计算,3.2 多项式插值,interp1(x,y,x1,method),x=4:15; y=5 8 9 15 25 29 31 30 22 25 27 24; x=4:0.5:15; yn=interp1(x,y,x1,nearest); yl=interp1(x,y,x1,linear); ys=interp1(x,y,x1,spline); yc=interp1(x,y,x1,cubic); plot(x,

19、y,o,x1,yn,-); plot(x,y,o,x1,yl,-); plot(x,y,o,x1,ys,-) ; plot(x,y,o,x1,yc,-);,57,3. MATLAB数值计算,3.3 多项式拟合,x=linspace(x,y,n); y=cos(x);,p=polyfit(x,y,6);y1=polyval(p,x);,polyfit(x,y,n),plot(x,y,or,x,y1,-b);,.,58,4. MATLAB程序设计,59,4. MATLAB程序设计,4.1 M文件,4.2 数据的输入输出,4.3 程序结构控制,60,4. MATLAB程序设计,4.1 M文件局部变量

20、与全局变量,global A B C,无论在脚本文件还是在函数文件中,都会定义一些变量。函数文件所定义的变量是局部变量,这些变量独立于其他函数的局部变量和工作空间的变量,即只能在该函数的工作空间引用,而不能在其他函数工作空间和命令工作空间引用。 但是如果某些变量被定义成全局变量,就可以在整个MATLAB 工作空间进行存取和修改,以实现共享。因此,定义全局变量是函数间传递信息的一种手段。,61,4. MATLAB程序设计,4.1 M文件M文件的编辑,62,4. MATLAB程序设计,4.1 M文件脚本文件,x=linspace(x,y,n); y=cos(x);,p=polyfit(x,y,6)

21、;y1=polyval(p,x);,一些命令的集合,plot(x,y,or,x,y1,-b);,.,63,4. MATLAB程序设计,4.1 M文件函数文件,function y=hanshu(x) y=sin(x)+cos(x);,function开头,编制一个函数文件,输入什么,输出什么,输出参数表=函数名(输入参数表),64,4. MATLAB程序设计,4.1 M文件常用数学函数,65,4. MATLAB程序设计,4.2 数据输入与输出键盘输入 屏幕输出,x=input(请输入数据); disp(x);,inputdisp,66,4. MATLAB程序设计,4.2 数据输入与输出M数据文

22、件存储加载,save存储,67,4. MATLAB程序设计,4.2 数据输入与输出M数据文件存储加载,load加载,68,4. MATLAB程序设计,4.2 数据输入与输出外部文件导入,filename, pathname= uigetfile(*.xls); %寻找源文件file=pathname filename; %赋名x=xlsread(file); %格式转换为矩阵 之后就用x来代表导入的这个矩阵。 如excel 里输入了 1 2 3 4 5 6 如下命令 x(1,:) ans = 1 2 3,.xlsEXCEL文件数据导入,69,4. MATLAB程序设计,4.2 数据输入与输出外

23、部文件导入,a1,a2,a3,a4=textread(test1.txt,%s%s%s%s,headerlines,4) 说明: %s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。 这里%s的个数和a1,a2,a3,a4对应。,.txt记事本文件数据导入,70,4. MATLAB程序设计,4.2 数据输入与输出外部文件导入,file-import data按照提示进行,.xls,.txt,71,4. MATLAB程序设计,4.3 程序结构控制for循环,for循环控制命令,格式: for i=n1:(step):n2 commands; end 作用:重复执行命令集com

24、mands.,循环控制命令(for命令),72,4. MATLAB程序设计,4.3 程序结构控制for循环,例1:求和:s=1+2+n n=input(请输入 n=); s=0; for i=1:n s=s+i; fprintf(i=%.0f, s=%.0fn,i,s); end,例2:求奇数和:s=1+3+5+(2k-1) n=input(请输入 n=); s=0; for i=1:2:n s=s+i; fprintf(i=%.0f, s=%.0fn,i,s); end,73,4. MATLAB程序设计,4.3 程序结构控制for循环,例3:求阶乘:p=12 3 n=n! n=input(请

25、输入 n= ); p=1; for i=1:n p=p*i; fprintf( i=%.0f, p=%.0fn ,i,p); end,例4:求e:e=1+1+1/2!+1/3!+1/n! n=input(请输入 n= ); p=1;e=1; for i=1:n p=p*i; p1=1/p; e=e+p1; fprintf( i=%.0f, p=%.0f, e=%.8f n ,i,p,e); end,74,4. MATLAB程序设计,4.3 程序结构控制for循环,例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+ n=input(请输入 n= ); pi=0;k=-1; f

26、or i=1:2:n k=(-1)*k; pi=pi+k*1/i; fprintf( i=%.0f, pi=%.8f n ,i,4*pi); end,75,4. MATLAB程序设计,4.3 程序结构控制while循环,while条件循环命令,条件循环命令(while命令),格式: while (condition is true) commands; end 作用:重复执行命令集commands.,76,4. MATLAB程序设计,4.3 程序结构控制while循环,例6:求和:s=1+2+n3000 s=0;k=1; while s3000 s=s+k; fprintf( k=%.0f,

27、s=%.0fn ,k,s); k=k+1; end,例7:求e:e=1+1+1/2!+1/3!+ (1/n!=1.0e-8 p=p*i; r=1/p; e=e+r; fprintf( i=%.0f, r=%.9f, e=%.9f n ,i,r,e); i=i+1; end,77,4. MATLAB程序设计,4.3 程序结构控制if控制,if选择控制命令,单项选择控制 格式: if (condition is true) commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。,78,4. MATLAB程序设计,4.3 程序结构控制if控制,例8:求n个实数中最大的数M a=input(请输入数组 an= ); m,n=size(a); M=a(1); for i=2:n if Ma(i) M=a(i); end fprintf( M=%.5f, a(%.0f)=%.5f n ,M,i,a(i); end,79,4. MATLAB程序设计,4.3 程序结构控制if控制,if选择控制命令,多项选择控制 格式: if (condition is true) commands; else

温馨提示

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

评论

0/150

提交评论