Rel第23.2章介绍及程序基础66帧.ppt_第1页
Rel第23.2章介绍及程序基础66帧.ppt_第2页
Rel第23.2章介绍及程序基础66帧.ppt_第3页
Rel第23.2章介绍及程序基础66帧.ppt_第4页
Rel第23.2章介绍及程序基础66帧.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

第二章 Matlab 基础简介 2.1 Matlab发展历程与主要特点、功能 一、Matlab简介 Matlab(Matrix Laboratory)是由MathWorks公司开发的,目前国际上最流行、应用最广泛的科学与工程计算软件,它广泛应用于自动控制、数学运算、信号分析、计算机技术、图像信号处理、财务分析、航天工业、汽车工业、生物医学工程、语音处理和雷达工程等各行各业,也是国内外高校和研究部门进行多科学研究的重要工具.,Matlab的基本数据单位是矩阵,软件名称Matrix Laboratory就是矩阵实验室。它的指令表达式与数学、工程中常用的形式十分相似,号称演算纸软件,故用Matlab来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且Math Work也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用, 用户也可以将自己编写的实用程序导入到Matlab函数库中调用,此外许多的Matlab爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。,20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。 1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB1.0推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。,MATLAB 6.0 R12 2000 MATLAB 6.1 R12.1 2001 MATLAB 6.5 R13 2002 MATLAB 6.5.2 R13SP2 2003 MATLAB 7.0.1 R14SP1 2004 MATLAB 7.1 R14SP3 2005 MATLAB 7.3 R2006b 2006 MATLAB 7.5 R2007b 2007 MATLAB 7.7 R2008b 2008 MATLAB 7.8 R2009a 2009 MATLAB 7.13 R2011b 2011 MATLAB 8.0 R2012b 2012 同时,在功能上已从原来单一的矩阵计算拓展到算法开发、数值分析、图像处理、图形可视化、建模仿真等各个方面,在各个领域都具有重大的应用潜力。,二、Matlab主要特点 1、语言简单易学 2、代码短小高效 3、计算功能强大 4、绘图非常方便 5、扩充能力强大 6、帮助功能完整,三、MATLAB的主要功能 1数值计算和符号计算功能 MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。 MATLAB和著名的符号计算语言Maple相结 合,使得MATLAB具有符号计算功能。 2绘图功能 MATLAB语言具有强大的绘图功能,具有很多绘图函数命令,可以绘制二维、三维图 形,还可以进行动画的制作等等。,3编程语言 MATLAB具有程序结构控制、函数调用、数据 结构、输入输出、面向对象等程序语言特征, 而且简单易学、编程效率高。 4MATLAB工具箱 优化工具箱 统计工具箱 金融分析工具箱 通信系统工具箱 图像处理工具箱 数据库工具箱 控制系统工具箱 ,常用函数 Matlab内部常数(简介) eps: 浮点相对精度(计算机中最小数) pi: 圆周率 exp: 自然对数的底数e 2.71828 i 或 j: 基本虚数单位-1 inf: 无限大, 例如1/0 infinity NaN: 非数值(Not a number),例如0/0 realmax:系统能表示的最大数值 1.7977e+308 realmin:系统能表示的最小数值 2.2251e-308 nargin: 函数的输入变量个数(39866616) nargout: 函数的输出变量个数(39866616),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 : 向正无穷取整 rats(x): 将实数x 化为分数表示 rat(x): 将实数x 化为多项分数展开,sign(x):符号函数 (Signum function) 当x0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x) : 自然指数 pow2(x):2的指数(2进制用) log(x): 以e为底的对数,自然对数 log2(x): 以2为底的对数(2进制用) log10(x):以10为底的对数,常用对数,MATLAB常用三角函数(以弧度为角度单位) sin(x):正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反余弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数,适用于向量的常用函数有 min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度 sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积,当MATLAB安装完毕并首次启动时,展现在屏幕上的界面为MATLAB的默认界面,如右图所示。,2.2 初识MATLAB,命令窗口 命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。 MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。,工作空间窗口 工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。,命令历史记录窗口 在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的Clear Command History命令。,例1 绘制正弦曲线和余弦曲线。 x=0:0.5:360*pi/180; plot(x,sin(x),x,cos(x);,例2 求方程 3x4+7x3 +9x2-23=0的全部根。 p=3,7,9,0,-23; %建立多项式系数向量 x=roots(p); %求根,Matlab 举例,例3 求定积分 quad(x.*log(1+x),0,1) %辛普生法定积分 例4 求解线性方程组。 a=2, -3, 1 %可以有逗号或空格分开 8 3 2 45 1 -9; b=4;2;17; x=inv(a)*b,第三章 Matlab基本使用方法与常用功能 3.1 常量与变量 3.1.1 特殊常量 eps %浮点相对精度(机器零阈值) ans = 2.2204e-016 pi %圆周率 ans = 3.1416 realmax %最大正实数 ans = 1.7977e+308, realmin %最小正实数 ans = 2.2251e-308 clock %时钟(年月日时分秒) ans = 1.0e+003 * 2.0070 0.0030 0.0120 0.0200 0.0270 0.0033 fix(clock) ans = 2007 3 12 20 28 19 date %日期 ans = 12-Mar-2007,其它常用(固定)变量 NaN %不定值 nargin %函数输入参数数目 nargout %函数输出参数数目 i,j %虚数单位 tic %秒表计时开始 toc %秒表计时结束,3.1.2 数值描述 3 ans = 3 -99 ans = -99 0.001 ans = 1.0000e-003 9.45 ans = 9.4500 1.3e-3 ans = 0.0013, 4.5e33 ans = 4.5000e+033 数值通常采用“占用64位内存的双精度”表示,其相对精度是eps 3=3+eps %判断两数是否相等 ans = 1 3=3+1e-5 ans = 0 3=(3+(eps*10) ans = 0,3.1.3 一般变量 一、 命名规则 (1)变量名区分大小写 (2)变量名以字母开头,可以由字母,下划线数字构成,其长度不超过63位(不同版本有效位会有所不同),变量名不可以含有空格、标点、运算符.,例如 在MATLAB命令窗口输入命令: x=1+2i; %一般写成x=1+2*i y=3-sqrt(17); z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y); 注:pi, i由系统本身定义的变量,在使用时,应尽量避免对这些变量重新赋值。,二、内存变量的管理 1内存变量的删除与修改 MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击Delete按钮,就能删除这些变量。当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。,clear命令用于删除MATLAB工作空间中的变量。who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。,3.2.1 建立数组 1、直接赋值法 X1=0 1 2 3 0.1*pi 10*pi X1 = 0 1.0000 2.0000 3.0000 0.3142 31.4159 X2=1 2 3;4 5 6;7 8 9 X2 = 1 2 3 4 5 6 7 8 9 X3=1 2 3 4 5 6 7 8 9,3.2 数组 Matlab中的数组包含:行向量,列向量,矩阵及多维数组.,X3 = 1 2 3 4 5 6 7 8 9 2、冒号法 语法:初始值:步长:终值 X4=1:5 X4 = 1 2 3 4 5 X5=1:2:8 X5 = 1 3 5 7, X6=(2:8)*pi X6 = 6.2832 9.4248 12.5664 15.7080 18.8496 21.9911 25.1327 X7=(2:0.5:4)*pi X7 = 6.2832 7.8540 9.4248 10.9956 12.5664,3、linspace法(线性)、logspace法(10的幂) 语法:linspace(初值,终值,元素的个数) logspace(初值,终值,元素的个数) X8=linspace(0,2,11) %在区间(0,2)插入9个数 X8 = Columns 1 through 10 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 Column 11 2.0000, X9=logspace(0,2,11) %在100与102间插入9个数 X9 = Columns 1 through 10 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 39.8107 63.0957 Column 11 100.0000, X10=10.X8 %一个数与数组的运算 X10 = Columns 1 through 10 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 39.8107 63.0957 Column 11 100.0000,4、拼接法 A=1 2 3 A = 1 2 3 B=4:6 B = 4 5 6 AB1=A,B AB1 = 1 2 3 4 5 6 AB2=A;B AB2 = 1 2 3 4 5 6, C=AB2 C = 1 2 3 4 5 6 D=0 1 %转置 D = 0 1 CD=C,D CD = 1 2 3 0 4 5 6 1,3.2.2 数组的引用 1.一维数组 设X是一维数组,X(n): X的第n个元素 X(n1:n2): X的第n1至n2个元素 X=(1:8)*pi X = 3.1416 6.2832 9.4248 12.5664 15.7080 18.8496 21.9911 25.1327 X(3) ans = 9.4248, X(4:8) %访问X的第4至第8个元素 ans = 12.5664 15.7080 18.8496 21.9911 25.1327 X(end:-1:1) %元素倒排 ans = 25.1327 21.9911 18.8496 15.7080 12.5664 9.4248 6.2832 3.1416 X(5:-1:1) ans = 15.7080 12.5664 9.4248 6.2832 3.1416 X(5:-2:1) ans = 15.7080 9.4248 3.1416,2.二维数组 设X是二维数组,X(m,n): X的第m行第n列元素 X(m1,:): X的第m1行元素 X(:,n1): X的第n1列元素 X(k): X的第k个元素(单下标表示) A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9, A(1,2) %A的第1行第2列元素 ans = 4 A(6) %A的第6个元素 ans = 6 A(2,:) ans = 2 5 8 A(:,2) ans = 4 5 6, A(1:2,3) ans = 7 8 A(end:-1:1,:) ans = 3 6 9 2 5 8 1 4 7,3.2.3细胞数组与结构数组 1. 细胞数组(cell) 细胞(元胞)数组是以单元为元素的数组,其元素可以是实数矩阵、字符串数组、复数向量,元素可以是不同数值的数据类型. (1) 细胞数组的创建 左标志法 C1,1=4+6i; %创建细胞数组C C1,2=北理工; C2,1=1 2 3;4 5 6;7 8 9; C2,2=1 2 3 4 5 6 7 8 9;, C C = 4.0000+ 6.0000i 北理工 3x3 double 1x9 double celldisp(C) C1,1 = 4.0000 + 6.0000i C2,1 = 1 2 3 4 5 6 7 8 9 C1,2 = 北理工 C2,2 = 1 2 3 4 5 6 7 8 9,右标志法 D(1,1)=4+6i; %创建细胞数组D,与C相同 D(1,2)=北理工大学; D(2,1)=1 2 3;4 5 6;7 8 9; D(2,2)=1 2 3 4 5 6 7 8 9; D D = 4.0000+ 6.0000i 北理工大学 3x3 double 1x9 double, celldisp(D) D1,1 = 4.0000 + 6.0000i D2,1 = 1 2 3 4 5 6 7 8 9 D1,2 = 北理工大学 D2,2 = 1 2 3 4 5 6 7 8 9, E=C2,1 E = 1 2 3 4 5 6 7 8 9 F=C2,1(3,1) F = 7 F=C1,2(1,5) F = g,直接输入法 G=4+6*i,北理工大学;1 2 3;4 5 6;7 8 9,1 2 3 4 5 6 7 8 9 %与C,D相同,与一般数组相同 G = 4.0000 + 6.0000i 北理工大学 3x3 double 1x9 double H=Boy;Girl H = Boy Girl GH=G,H %细胞数组的合并,与一般数组相同 GH = 4.0000 + 6.0000i 北理工大学 Boy 3x3 double 1x9 double Girl, GH: %将数组每一个元素显示出来 ans = 4.0000 + 6.0000i ans = 1 2 3 4 5 6 7 8 9 ans = 北理工大学 ans = 1 2 3 4 5 6 7 8 9 ans = Boy ans = Girl,2. 结构数组(structer) 每一个结构数组包含数个字段(Fields),而各个字段包含各个不同的类型的数据,例如下面是包含学生资料的结构数组 =李二 student = name: 李二 student.id=200601; student.scores=60 70 80; %字符串, student student = name: 李二 id: 200601 scores: 60 70 80 student.scores=60 70 80; %改变成绩数据类型 student student = name: 李二 id: 200601 scores: 60 70 80 student.scores=60 70 80;, Student=struct(name,赵三, id,200602,scores,72 34 89) %另一方法创建结构数组,注意字母大小写,与前面的student不同 Student = name: 赵三 id: 200602 scores: 72 34 89 student(2).name=王五; %追加元素 student(2).id=200602; student(2).scores=83 99 100;, student student = 1x2 struct array with fields: name id scores student(1) ans = name: 李二 id: 200601 scores: 60 70 80, student(2) ans = name: 王五 id: 200602 scores: 83 99 100 student(3)=struct(name,小周,id,200603, scores,92 95 94); student(3) ans = name: 小周 id: 200603 scores: 92 95 94, student(3).scores(2) %成绩以字符串形式给出,想想为什么显示如下结果? ans = 9 student(3).scores(3) ans = 2 student(3).scores=92 95 94 student(3) ans = name: 小周 id: 200603 scores: 92 95 94,student(3).scores(2) ans = 95 all_names= all_names = 李二王五小周 all_scores=student.scores all_scores = 60 70 8083 99 100_, student(3).scores=60 70 80; %修改成绩属性 student(2).scores=83 99 100 student = 1x3 struct array with fields: name id scores student(1).scores=30 75 89; all_scores=student.scores all_scores = 30 75 89 83 99 100 60 70 80, cat(1,student.scores) %并排数组,1表示上下并排. ans = 30 75 89 83 99 100 60 70 80 cat(2,student.scores) %水平排列 ans = 30 75 89 83 99 100 60 70 80 student(1).scores(4)=77 %追加一门成绩, student(1) ans = name: 李二 id: 200601 scores: 30 75 89 77 student(2).scores(4)=88 student(3).scor

温馨提示

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

评论

0/150

提交评论