版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、厦门大学计算机系严 严厦门大学全校性选修课1课程背景MATLABMATLAB是美国MathWorks公司出品的商业数学软件广泛用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境主要包括MATLAB语言和Simulink两大部分2课程背景MATLAB当今世界上应用最广泛的数学软件之一和Mathematica、Maple、MathCAD并称为四大数学软件主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。http:/ 机械工业出版社,2009MATLAB机电控制系统技术与应用,清华大学出版社,2011实用化工计算机模拟:MATLAB
2、在化学工程中的应用,化学工业出版,2008MATLAB 在电气工程中的应用,中国电力出版社,2007MATLAB在自动控制中的应用西安电子科技大学出版社,2006土木工程常用软件分析与应用(MATLAB-SAP2000-ANSYS),中国建筑工业出版社出版的,20103掌握MATLAB语言的基本知识和编程运用MATLAB语言进行科学计算、数据处理和数据可视化能力通过本课程的学习,你将学会:编写中等难度的程序(包括数据的输入,处理和显示) 编写可视化的界面课程目的课程任务4第一章 MATLAB 简介 第二章 数组与矩阵 第三章 二维平面绘图 第四章 三维绘图 第五章 字符串 第六章 MATLAB
3、函数 第七章 MATLAB程序设计 第八章 MATLAB程序用户界面设计 教学内容5学时安排与考试形式总学时:32学时讲授:约12学时上机实验:约20学时考试方式:平时40%+期末60%6推荐参考书目 精通精通Matlab 7, 清华大学出版社 2006年 MATLAB程序设计与应用程序设计与应用,清华大学出版社,2002年 科学计算技术与科学计算技术与Matlab,科学出版社,2001年 MATLAB程序设计与综合应用程序设计与综合应用 ,清华大学出版社,2011年7学好Matlab的方法用好help;学会搜索;多读高手的程序;亲自动手编程;【例如】随机展示一个方向,大小,颜色各异的囧字【例
4、如】利用Matlab运行系统命令calcshutdown -s8第一章 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Matlab脚本文件 1.6 搜寻路径1.7 工作空间与变量的储存及加载91.1 MATLAB基本功能和特点MATLAB历史系统最初是由Cleve Moler用FORTRAN语言设计的Jack Little用C语言重写并于1984年成立MathWorks公司,首次推出MATLAB商用版(DOS版本1.0)经过20余年的不断改进,现今已推出2012版(R2012b) 101112日常数学处理中的各
5、种功能数值计算、矩阵运算和图形生成等功能集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等操作提供了一个人机交互的系统环境基本数据结构是矩阵MATLAB的最突出的特点就是简洁MATLAB用更直观的、符合人们思维习惯的代码代替了C和FORTRAN长代码MATLAB介绍13MATLAB已经发展成为适合多学科、多种工作平台的大型软件已成为工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等工具MATLAB作为第四代计算机语言的代表其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来 MATLAB介绍141、语言简洁紧凑,使用方便灵活,库函数极其丰富 MATLAB程
6、序书写形式自由 例如求解方程组:MATLAB的特点解方程代码为:x=Ab; MATLAB的程序极其简短。更为难能可贵的是,MATLAB会根据矩阵的特性选择方程的求解方法152、运算符丰富 由于MATLAB是用C语言编写的,提供了和C语言类似的运算符,灵活使用运算符将使程序变得极为简短 3、具有结构化的控制语句又有面向对象编程的特性 如for循环、while循环、break语句和if语句4、程序设计灵活简单 如MATLAB用户无需对矩阵预定义就可使用5、程序的可移植性很好 基本上不做修改就可以在各种型号的计算机和操作系统上运行 MATLAB的特点16 6、MATLAB的图形功能强大的图形功能强大
7、 MATLAB数据的可视化非常简单,MATLAB还具有较强的编辑图形界面的能力 7、功能强劲的工具箱、功能强劲的工具箱 MATLAB包含两个部分:核心部分和各种核心部分和各种工具箱 核心部分中有数百个核心内部函数。 工具箱可分为两类:功能性功能性工具箱和学科性学科性工具箱功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能字处理功能以及与硬件实时交互功能功能性工具箱能用于多种学科。学科性工具箱是专业性比较强专业性比较强如control toolbox、signal process toolbox、communica
8、tion toolbox, financial analysis等。 MATLAB的特点178、具有丰富的与外部程序接口、具有丰富的与外部程序接口9、MATLAB的缺点的缺点 和其他高级程序相比,程序的执行速度较慢由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行MATLAB的特点18第一章 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Matlab脚本文件 1.6 搜寻路径1.7 工作空间与变量的储存及加载191.2 变量与基本运算 变量命名规则与使用 区分大小写 最多包含63个字符,
9、多余字符被忽略 必须以字母开始,其余可以是任意数量的字母、 数字或者下划线 不允许出现标点符号 MATLAB在使用变量时,不需预先经过变量声明,而且所有数值变量均以默认的double数据类型储存MATLAB中的关键字不能用作变量名(包括for、end、if while、function、return、elseif、case、otherwise、 switch、continue、else、try、catch、global、break、persistent等)。20 MATLAB能识别一般常用的加(+)、减(-)、乘(*)、除()、幂次()等数学运算符号 在MATLAB下进行基本运算,最快速简单的
10、方式是在命令窗口(Command Window)内的提示符号之后输入表达式,并按下Enter键即可【例如】 (5*2+3.5)/5 ans= 2.7000 MATLAB会将运算结果直接存入默认变量ans1.2 变量与基本运算 21 若不想让MATLAB每次都显示运算结果,只需在表达式最后加上分号(;)即可【例如】 (5*2+3.5)/5; 也可将运算结果储存于使用者自己设定的变量x内【例如】 x=(5*2+3.5)/5 x= 2.70001.2 变量与基本运算 22 MATLAB会将所有在百分比符号()之后的文字视为程序的注解(Comments)【例如】 y=(5*2+3.5)/5; 将运算结
11、果储存于变量y,但不用显示于屏幕 z=y2 将运算结果储存于变量2,并显示于屏幕 z= 7.2900 1.2 变量与基本运算 23 MATLAB可同时执行以逗号(,)或分号(;)隔开的数个表达式【例如】 x=sin(pi/3); y=x2; z=y*10, z= 7.5000 若一个数学运算式太长,可用三个句点()将其延伸到下一行【例如】 z=10*sin(pi/3)*. sin(pi/3);1.2 变量与基本运算 24第一章 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Matlab脚本文件 1.6 搜寻路径
12、1.7 工作空间与变量的储存及加载251.3 向量与矩阵的处理 MATLAB中的变量还可用来储存向量(Vector)及矩阵(Matrix),以进行各种运算【例如】 s=1 3 5 2;注意的使用,及各数字间的空白间隔 t=2*s+l t= 3 7 11 5 【注意】 s=1 3 5 2与s=1,3,5,2的效果是一样的。 26 MATLAB也可取出向量中的一个元素或一部分来做运算【例如】 t(3)=2 将向量t的第3个元素更改为2 t= 3 7 2 5 t(6)=10 在向量t加入第6个元素,其值为10 t= 3 7 2 5 0 10 1.3 向量与矩阵的处理27 t(4)= 将向量t的第4个
13、元素删除 t= 3 7 2 O 10 s(2)*3+t(4) 取出向量s的第2个元素和向量t的第4个元素来做运算 ans = 9 t(2:4)-1 取出向量t的第2至第4个元素来做运算 ans= 6 1 -1【注意】 Matlab用冒号表达式t1:t2:t3表示从t1到t3中间间隔t2 1.3 向量与矩阵的处理28 用类似上述建立向量的方法,可以建立m*n大小的矩阵(m代表矩阵的行数,n代表矩阵的列数),但必须在每一行结尾加上分号【例如】 A=1 2 3 4;5 6 7 8; 9 10 11 12; %建立3*4的矩阵A A %显示矩阵A的内容 A= 1 2 3 4 5 6 7 8 9 10
14、11 121.3 向量与矩阵的处理29同样,可以对矩阵进行各种处理【例如】 A(2,3)=5 %将矩阵A第二行、第三列的元素值,改变为5 A= 1 2 3 4 5 6 5 8 9 10 11 12 B=A(2,1:3) 取出矩阵A第2行、第1列至第3列的元素值,储存成一新矩阵B B= 5 6 5 1.3 向量与矩阵的处理30 A=A B 将矩阵B转置后、再以列向量并入矩阵A A= l 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:,2)= 删除矩阵A第2列(:代表所有行,代表空矩阵) A= l 3 4 5 5 5 8 6 9 11 12 51.3 向量与矩阵的处理【例如】
15、 31A= 1 2 3 4 5 6 5 8 9 10 11 12A=A; 4 3 2 1 在原矩阵A中,加入第4行 A= 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 A(1 4,:)= 删除第1、第4行(:代表所有列,代表空矩阵) A= 5 5 8 6 9 11 12 5 1.3 向量与矩阵的处理【例如】 【总结】 灵活运用这几种矩阵处理的方式,可以产生意想不到的效果32A= 1 2 3 4 5 6 5 8 9 10 11 12第一章 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Mat
16、lab脚本文件 1.6 搜寻路径1.7 工作空间与变量的储存及加载331.4 常用数学函数 MATLAB是一个科学计算软件,支持很多数学函数【例如】 x=4; y=abs(x) %取x的绝对值 y= 4 y=sin(x) %取x的正弦值 y= 0.756 y=exp(x) %自然指数exp(x) y = 54.5982 y=log(x) %自然对数ln(x) y= 1.3863 34MATLAB也支持复数运算,通常以i或j代表单位虚数【例如】 z=5+4j 复数z=5+4i z= 5.O000+4.0000i y=angle(z) 复数z的相角 y= 0.67471.4 常用数学函数 35 y
17、=real(z) 复数z的实部 y= 5 y=imag(z) %复数z的虚部 y= 4 y=conj(z) %复数z的共轭复数 y= 5.0000-4.0000i y= exp(j*pi/6) % y= 0.8660+0.5000i 1.4 常用数学函数 【例如】 36基本的数学函数,也都通用于向量或矩阵【例如】 x=4 2j 9; y=sqrt(x) %对x开平方 y= 2.0000 1.0000+1.0000i 3.0000 还有一些函数是特别针对向量而设计的【例如】 x=1 2 3 0 12; y=min(x) %向量x的最小值 y= 0 1.4 常用数学函数 37y=max(x) %向
18、量x的最大值 y= 12 y=mean(x) %向量x的平均值 y= 3.6000y=sum(x) %向量x的总和 y= 19 y=sort(x) %向量x的排序 y= 0 1 2 3 12 1.4 常用数学函数 【例如】 38x=1 2 3 0 12; 这些函数是针对向量(列向量或者行向量)设计的 若输入为矩阵时,这些函数将输入矩阵看成是列向量的集合,并选一对列向量进行运算【例如】 x=1 2 3;4 5 6;7 8 9; y=median(x) %x每个列向量的中位数 y= 4 5 6 y=prod(x) %x每个列向量的乘积 y= 28 80 1621.4 常用数学函数 39 若对MAT
19、LAB函数用法有疑问,可随时使用help命令来寻求在线帮助(On-line Help)【例如】 help sin SIN Sine of argument in radians. SIN(X) is the sine of the elements of X. See also asin, sind. Overloaded functions or methods (ones with the same name in other directories) help sym/sin.m Reference page in Help browser doc sin1.4 常用数学函数 40第一章
20、 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Matlab脚本文件 1.6 搜寻路径1.7 工作空间与变量的储存及加载411.5 Matlab脚本文件 若要一次执行大量的MATLAB语句,可将这些语句存放到一个扩展名为m的文件中,并在MATLAB命令提示号下输入此文件的主文件名即可这种包含MATLAB语句的文件都以m为扩展名,因此通称M文件(M-Files)【例如】 一个名为test.m的M文件,包含一连串的MATLAB语句,那么只要直接输入test,即可执行其所包含的语句。 42 type test.m %
21、 显示test.m的内容 % This is my first test Mfile % Roger Jang,March 3,1997 fprintf(Start of testm!n);%将字符串写入文件 for i=1:3, fprintf(i=%d -i3= %d n,i,i3); end fprintf(End of test.m!n); test %执行testm Start of test.m! i=l - i3= 1 i=2 - i3= 8 i=3 - i3= 27 End of test.m!1.5 Matlab脚本文件 43M文件可再细分为脚本(Scripts)及函数(Fu
22、nctions)脚本(例如前述test.m文件)的作用和将个别MATLAB的命令或表达式在MATLAB的命令窗口内逐一输入一样执行时,可以直接使用储存在工作空间中的变量函数则需要用到输入变量(input Arguments)和输出变量(Output Arguments)来传递信息,类似C语言的函数,或是FORTRAN语言的子程序(Subroutines)1.5 Matlab脚本文件 44【例如】若要计算一个正整数的阶乘(Factorial),可以写一个如下的MATLAB函数并把它存盘于fact1.m。 function output=fact1(n) % FACT1 Calculate fac
23、torial of a given positive integer output=1; for i=1;n, output=output*i; end提示:蓝色的为matlab关键字。 1.5 Matlab脚本文件 y=factl(5)y=factl(5) y= y= 120 120 45第一章 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Matlab脚本文件 1.6 搜寻路径1.7 工作空间与变量的储存及加载461.6 搜寻路径 如果希望MATLAB不论在何处都能执行m文件,那么就必须m文件所在的目录加入
24、到MATLAB的搜寻路径(Search Path)上。 【提示】 MATLAB搜寻路径(简称MATLAB路径)是指文件所在的所有目录的列表。 路径搜寻操作过程:每次MATLAB遇到(例如test)时,其处理程序为: 1检查test是否为使用者定义的变量。若是,则取用。 2. 若不是,检查test是否为永久常数。若是,则取用。 3若不是,检查test是否为当前工作目录的M文件。若是,则取用。 4若不是,检查test是否为搜寻路径下的M文件,若是,则取用。 5若不是则MATLAB发出错误信息。 47 若要查看MATLAB已设定的搜寻路径,输入path命令即可: path MATLABPATH d:
25、mlbookexamples c:MATLABRl4toolboxmatlabgeneral c:MATLABRl4toolboxmatlabkops【提示】 在屏幕上看到所有返回的搜寻路径内容,会根据使用者所安装的工具箱(Toolboxes)不同而有所差异 1.6 搜寻路径 48 若只要查询某一特定命令所在的搜寻路径,可用which命令【例如】 which demo c:MATLABRl4toolboxmatlabdemosdemo.m cd(matlabroot); %跳到MATLAB的根目录 which test test not found 很显然“d:mlbookexamples”并
26、不在MATLAB的搜寻路径中,因此MATLAB找不到test.m这个M文件。 要将目录“d:mlbookexamples”加入到MATLAB的搜寻路径中,可使用addpath命令 addpath(d:mlbookexamples);1.6 搜寻路径 49 【设置】设定MATLAB搜寻路径: 用MATLAB的addpath函数 如,addpath(c:matlabmymfiles) 用MATLAB桌面窗口的菜单设置 File菜单下的Set Path菜单项。 用初始化的两个M脚本文件matlabrc.m和startup.mmatlabrc.m主要用于图形显示(Figure)窗口的默认大小和位置设置
27、以及其他默认特征matlabrc.m文件还用于设置默认MATLAB搜寻路径,这项工作是通过调用脚本文件pathdef.m来完成的1.6 搜寻路径 50第一章 MATLAB 简介 1.1 Matlab基本功能和特点1.2 变量与基本运算1.3 向量与矩阵的处理 1.4 常用数学函数1.5 Matlab脚本文件 1.6 搜寻路径1.7 工作空间与变量的储存及加载511.7 工作空间与变量的储存及加载【概念】MATLAB在进行各种运算时,会将变量储存在内存中,这些储存变量的内存空间称为基本工作空间(Base Workspace)或简称工作空间Workspace) 【提示】查看工作空间变量的其他方式
28、1. 直接单击MATLAB命令窗口工具栏上的“工作空间”图标 2.在MATTLAB命令窗口内直接输入workspace命令 可以使用clear命令来清除或删除工作空间内的某一特定或所有变量,以避免内存的闲置与浪费。 clear A %删除了作空间内的变量A clear all %删除工作空间内的所有变量52 要查看现存于工作空间(Workspace)的变量,可输入who命令 who Your variables are: A ans s x z 在上例中,只显示这些由使用者定义的变量的名称。若要知道这些变量更详细的信息(例如:变量占用的内存大小及其储存的数据类型),则可使用whos命令,例如:
29、 whos Name Size Bytes Class A 2x4 64 double array ans lxl8 36 char array s lx4 32 double array x lx6 48 double array z lxl 16 double array(complex) Grand total is 47 elements using 276 bytes1.7 工作空间与变量的储存及加载53【注意】MATLAB有一些永久常数如表所示,虽然在工作空间中看不到,但使用者可直接取用,例如: pi ans= 3.1416常数常数说明说明i和和j基本虚数单位基本虚数单位eps系统
30、浮点精度系统浮点精度inf无限大,例如:无限大,例如:1/0nan或或NaN不定值,例如:不定值,例如:0/0pi圆周率圆周率(3.1415926.)realmax系统所能表示的最大数值系统所能表示的最大数值realmin系统所能表示的最小数值系统所能表示的最小数值nargin函数的输入变量个数函数的输入变量个数nargout函数的输出变量个数函数的输出变量个数MatlabMatlab常数表常数表1.7 工作空间与变量的储存及加载54 【注意】在不加任何选项(Options)时,save命令会将工作空间内的变量以二进制(Binary)的方式储存至扩展名为mat的文件: save:将工作空间的所
31、有变量储存到名为matlab.mat的二进制文件 save filename:将工作空间所有变量储存到名为filename.mat的二进制文件 save filename x y z:将变量x、y、z储存到名为filename.mat的二进制文件 【概念】在大量长时间执行MATLAB的运算中,使用者通常希望能将计算所得各变量内容储存在文件中(一般会暂时储存在工作空间内),以便将来可重新加载以进行其他处理可用save命令储存变量内容到文件,然后再用load命令1.7 工作空间与变量的储存及加载55cd d:mlbookexamples % 工作目录 clear all % 清除工作空间内的所有变
32、量 x =10;y=1,2,3; % x、y为新变量 whos % 列出了作中间内所有变量 Name Size Bytes Class x lxl 8 double array y lx3 24 double array Grand total is 4 elements using 32 bytes save test x y % 将变量x与y储存至test.mat dir *.mat % 列出目前工作目录中的所有MAT文件 test.mat tguidel.mat tguide2.mat delete test.mat % 删除文件test.mat1.7 工作空间与变量的储存及加载56 【
33、问题】以二进制的方式储存变量,通常文件会比较小,而且在加载时速度较快,缺点是无法用文本软件来查看文件内容。若想看到文件内容,则必须以ASCII的文件格式来储存工作空间的变量【格式】 save filename x -ascii:将工作空间中的变量x以8字节大小(8 bytes)储存到名为filename的ASCII文件 save filename x -ascii -double:将工作空间中的变量x以16字节大小(16 bytes)储存到名为filename的ASCII文件(注意:此时并不会自动加上扩展名) save filename -ascii -tabs:将工作空间中的所有变量以8字节大小(8 bytes)储存到名为filename的ASCII文件,并将同一行相邻的变量以定位键(即Ta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 荔城区2025福建莆田市荔城区事业单位定向招考2025年度未就业随军家属笔试历年参考题库典型考点附带答案详解
- 绵阳市2025上半年四川涪城区事业单位招聘24人笔试历年参考题库典型考点附带答案详解
- 湖南省邵阳市隆回县2027届六年级数学第一学期期末达标检测模拟试题含解析
- 泰安市新泰市2027届六上数学期末检测模拟试题含解析
- 怒江傈僳族自治州维西傈僳族自治县2027届数学四上期末检测模拟试题含解析
- 四川省达州市开江县2027届数学六上期末复习检测试题含解析
- 2026中国物流行业新进入者威胁与壁垒分析研究报告
- 2026电子竞技运动员健康管理装备技术创新与产业化障碍分析
- 脑出血患者的康复护理未来发展趋势
- 某纺织厂印染工序管理
- 0-6岁孤独症工作制度
- 信访档案规范管理办法
- T/CCIAS 012-2023川式火锅底料
- 2025广西农垦集团第一批公开招聘381人笔试参考题库附带答案详解
- 《髋关节的MRI》课件
- 2019营口天成消防JB-TB-TC5120 火灾报警控制器(联动型)安装使用说明书
- ICU综合症预防与护理
- 《智慧园艺》课程教学大纲
- 2019安科瑞消防 Acrel-6000 型电气火灾监控设备安装使用说明书
- 海洋工程水动力学试验研究
- 代收代付合同协议
评论
0/150
提交评论