版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1MATLAB语言设计基础过程装备与控制工程胡南江胡南江2Chap 1 Matlab 简介vMatlab是一种广泛应用于工程计算与数值分析的新型高级语言,自84年推向市场以来,历经二十多年发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。v在欧美高校,Matlab已经成为线性代数、数值分析、数理统计、自动控制理论数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生必须掌握的基本技能之一。vMatlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。3Matlab的特点与功能vMatlab是一个交互式软件系统是一个交互式软件系统 属输入一条命令,立即
2、就可以得出该命令的结果vMatlab具有很强的数值计算功能具有很强的数值计算功能 Matlab以矩阵作为数据操作的基本单位,但无需预先制定矩阵维数 按照IEEE的数值计算标准进行计算 其命令与数学中的符号、公式接近,可读性强,容易掌握。vMatlab符号计算功能符号计算功能(Maple,Mupad)vMatlab绘图功能绘图功能(数据可视化)vMatlab编程功能编程功能(面向对象)vSimulink动态仿真集成环境动态仿真集成环境(建模、算法参数选择)v丰富的工具箱丰富的工具箱(toolbox)4MATLAB界面命令窗口、当前工作目录、当前工作空间、输入命令的历史记录命令窗口、当前工作目录、
3、当前工作空间、输入命令的历史记录。5Matlab集成环境v运行MATLAB的可执行文件,自动创建MATLAB指令窗口。这种指令窗如图所示:命令窗口的是输入命令和输出结果的窗口,在这里输入的命令会立即得到执行,并输出。vMatlab功能选单共有File, Edit, Debug, Desktop, Window, Help六个主要功能,每个之下各又有下一层的功能。v初学者,可以在指令窗键入demo,这可是学习的好帮手。v一旦发现指令不知如何使用时,help, doc命令将告诉你使用。 Matlab的集成环境就是Matlab的编程环境,在这一环境中提供了许多编写、调试和执行Matlab程序的便利工
4、具。6Matlab帮助系统v联机帮助 help 显示指定命令的简短使用说明 例:help eig 例:help helpv详细使用帮助 doc 以网页形式显示指定命令的帮助页 例:doc eigv其它相关命令 helpdesk、helpwin、more7Matlab集成环境v在MATLAB下进行基本数学运算,只需将运算式直接打入提示号()之后,并按入Enter键即可。vMATLAB可以将计算结果以不同精确度的数字格式显示,我们可以在指令视窗上的功能选单上的Flie下选Preferences,更改 Numeric Format的属性,或者直接在指令窗口中通过format命令加以控制。8Matla
5、b的输出v输出格式输出格式 Matlab以双精度执行所有的运算,运算结果可以 在屏幕上输出,同时赋给指定变量;若无指定变 量,则系统会自动将结果赋给变量”ans” Matlab中数的输出格式可以通过 format命令指定format 只改变变量的输出格式,但不会影响变量的值!只改变变量的输出格式,但不会影响变量的值!9各种format格式格式格式解释解释例例format短格式(缺省显示格式),同short3.1416format short短格式(缺省显示格式),只显示5位3.1416format long长格式,双精度数15位,单精度数7位3.14159265358979format sho
6、rt e短格式e方式(科学计数格式)3.1416e+000format long e长格式e方式3.14159265358979e+000format short g短格式g方式3.1416format long g长格式g方式3.1415926535897910几个小技巧vMatlab的命令记忆功能:的命令记忆功能:上下箭头键上下箭头键v命令补全功能:命令补全功能:Tab键键v用用Esc键删除命令行键删除命令行可以先输入命令的前范围几个字符,再按可以先输入命令的前范围几个字符,再按上下键缩小搜索上下键缩小搜索vCtrl+C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。
7、11Matlab集成环境v编辑M文件将Matlab语句按一定的顺序结合在一起,就得到了Matlab程序,其文件名的后缀为m,故称为M文件。Matlab提供了M文件的专门编辑/调试器。启动编辑器方式(2种)12Matlab集成环境Matlab的的.m文件保存的命名规则:文件保存的命名规则:1.文件名为字母、数字和下划线组成的,第一个字符必须是字母。2.文件名不要取为matlab的一个固有函数名,m文件名的命名尽量不要是简单的英文单词。原因是简单的单词命名容易与matlab内部函数名同名,结果出现一些莫名其妙的错误。3.文件存储路径一定要为英文。4.中间不能有空格和标点符号。13工作目录的建立和设
8、置v为方便管理,每个用户在使用Matlab前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建的应用文件。v例如,首先打开资源管理器,在E驱动器下可以根据自己的喜好建立一个新文件夹,但应注意:要符合命名规则,更不要用中文命名。有时在运行matlab中一些莫名其妙的错误可能就是不规范的命名引起的。v尽管MATLABwork允许用户存放用户文件,但最好把它仅作为临时工作目录来使用v为了运行方便,在开始工作前把用户定义的目录设置为当前目录,方法是可直接在MATLAB命令窗口上方通过目录设置来实现。14Matlab搜索路径 当用户输入一个标识符(例如当用户输入一个标识符(例如valu
9、e)时,)时,Matlab按下按下列步骤进行处理:列步骤进行处理: (1)检查value是否为变量 (2)检查value是否为内部函数 (3)在当前工作目录下是否存在value.m 文件 (4)在Matlab搜索路径上是否存在value.m文件 如果在搜索路径上存在多个value.m文件,则只执行所找到的第一个value.m文件,如果找不到,则给出出错信息15管理命令和函数v help Matlab函数和M文件在线帮助v version 版本号v ver 显示Mathworks产品的版本信息v path 控制Matlab的目录搜索路径v addpath 将目录添加到Matlab的搜索路径上v
10、rmpath 从Matlab的搜索路径上删除目录v whatsnew 显示出Matlab工具箱的Readme文件v what 直接列出当前目录下M文件,MAT文件和MEX文件v which 函数和文件定位v type 列出文件v doc 在help浏览器窗口中打开帮助信息v lookfor 从所有帮助目录中查找关键字 v lasterr 显示上一个出错信息v error 显示出错信息v profile 测量并显示出M文件执行的效率16管理变量和工作空间v who, whos 列出内存中的变量v disp 显示文本或阵列 v clear 清除工作空间中的变量v mlock 防止M文件被删除 v
11、munlock 允许删除M文件v size 求阵列中维大小 v length 求阵列或向量长度,等效于max(size(X),v save 将工作空间变量保存到磁盘 v load 从磁盘中恢复变量v pack 释放工作空间内存17Matlab查找命令vLookfor 按指定的关键词查询与之相关的命令 例:lookfor inversevwhich 显示指定函数所在的目录 例:which eigv其它相关命令 what、more、cd、dir18使用文件和工作环境v diary 在磁盘文件中保存任务v dir 列出目录下的文件v cd 改变工作目录v mkdir 建立目录v copyfile 复
12、制文件v delete 删除文件和图形对象v edit 编辑M文件v inmem 获得内存中的函数v matlabroot 获得Matlab安装目录v fullfile 从部分中构造文件全名v fileparts 获得文件的组成部分v tempdir 返回系统临时工作目录名v tempname 产生临时文件的唯一文件名19启动和退出Matlab命令v matlabrc 启动Matlab的M文件v startup 启动Matlab的M文件v quit 终止(结束)Matlab20Chapter2 Matlab 基本操作v表达式v矩阵基础v操作符和特殊字符v基本数学函数v逻辑函数21Matlab变
13、量v变量命名原则变量命名原则 以字母开头 后面可以跟字母、数字和下划线 长度不超过63个字符(6.5版本前为19个) 变量名区分字母的大小写v变量名最好是描述性的,有意义的 例如 day, month, year, change_ratev变量不需要预先定义vMatlab语句的通常形式语句的通常形式 表达式是用运算符将有关算量连接起来的式子,其结果被赋给赋值号“=”左边的变量变量变量=表达式表达式;22Matlab变量v分号和续行符的作用分号和续行符的作用 若不想在屏幕上输出结果,可以再语句最后加上分号 如果语句很长,可用续行符“”续行。续行符的前面最好 留一个空格例:c=1+2-4+5+8c
14、 = 12c=1+2-4+5+8;c=1+2-4+ .+8c=1+2-4+5? c=1+2-4+5Error:Unexpected MATLAB operator.23Matlab变量v变量的查询变量的查询who 显示工作空间中的所有变量显示工作空间中的所有变量whos 查看工作空间中变量的详细属性查看工作空间中变量的详细属性whoYour variables are: a b c xwhosName Size Bytes classA 43 96 double arrayB 41 32 double arrayC 11 8 double arrayX 15 40 double arrayGr
15、and total is 25 elements using 200 bytes24Matlab变量v系统预定义变量系统预定义变量 pi 圆周率, 其值为 imag(log(-1) inf/Inf 无穷大 如1/0 nan/NaN Not-a-Number,一个不定值,如0/0 eps 浮点运算相对精度。决定诸如奇异性和秩的允许误差 i/j 虚部单位,即 sqrt(-1) realmax / realmin 最大/最小正浮点数v特殊变量 ans:没有给定输出变量名时默认变量名没有给定输出变量名时默认变量名应尽量避免给系统预定义变量重新赋值。应尽量避免给系统预定义变量重新赋值。25变量的存储v存
16、储当前工作空间中的变量 save 将所有变量存入文件 matlab.mat save mydata 将所有变量存入指定文件 mydata.mat save mydata.mat 将所有变量存入文件mydata.matv存储指定的变量save 文件名文件名 变量名列表变量名列表变量名列表中各变量之间用空格分隔。变量名列表中各变量之间用空格分隔。例:save mydata a x z26变量的读取v将数据文件中的变量载入当前工作空间将数据文件中的变量载入当前工作空间 load mydata 载入数据文件中的所有变量 load mydata a x 从数据文件中提取指定变量v请清除当前工作空间中的变
17、量请清除当前工作空间中的变量 clear 清除当前工作空间中的所有变量 clear a x 清除指定的变量27Matlab数值运算v数与算术表达式数与算术表达式 Matlab中的数默认是双精度实数,表示方法同C语言v十进制:3,8,-39v科学计数法:1.6e-21,-3.24e20 浮点运算的相对误差为 eps 浮点数表示范围为: 10-30810308 复数的输入 z=3+4i (4与i之间不能有空格) z=3+4*I复数作为矩阵元素输入时,加号两边不能有空格!复数作为矩阵元素输入时,加号两边不能有空格!3, -9, 0.4, 1.603e-12, 3.23e+20 其它类型如二进制、十六
18、进制均当做字符串输入,然后通过字符串变其它类型如二进制、十六进制均当做字符串输入,然后通过字符串变换函数换函数bin2dec、hex2dec转换成十进制转换成十进制28函数v函数分类:内部函数、Toolboxes中实用函数、用户自定义函数。v函数用法:1)嵌套:x=sqrt(log(z) 2)多输入: theta=atah2(y,x) 3)多输出:y,i=max(x)函数用法可用:help funname29Matlab数值运算v数学运算符数学运算符+ 加法 () 指定运算顺序- 减法 .* 元素对元素乘法* 乘法 ./ . 元素对元素除法/ 和 除法(右除左除) . 元素对元素指数 幂运算(
19、指数) . 非共轭阵列转置 复共轭转置30关系运算符:关系运算符:= 大于等于 大于 = 不等于逻辑运算符:逻辑运算符:& 逻辑与 逻辑非| 逻辑或或 xor 逻辑异或 Matlab中对两矩阵中的元素进行关系比较时,如果成立则为1,反之为0,比较结果为0和1构成的矩阵31表达式 将变量、数值、函数用操作符连接起来,就构将变量、数值、函数用操作符连接起来,就构成了表达式。成了表达式。vMATLAB书写表达式的规则与“手写算式”差不多相同。v如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续,每行最多4096个字符),例如 3*. 6 ans = 1832表达式示例a=(1+sqr
20、t(10)/2;b=abs(3+5i);c=sqrt(bessell(4/3), a-i);d=sin(exp(-2.3);e=pi*d 33矩阵基础v 矩阵的输入v 矩阵的存储v 矩阵的操作34矩阵输入v输入元素列表v从外部数据文件中读取矩阵v利用Matlab内部函数与工具箱函数产生矩阵v用户自己编写m文件产生矩阵35矩阵的MATLAB表示vMatlab的操作对象是的操作对象是矩阵矩阵v矩阵的直接排列输入矩阵的直接排列输入 例:a=1 2 3; 4 5 6; 7 8 9 矩阵用方括弧 “ ” 括起 矩阵同一行中的元素之间用 空格空格 或 逗号逗号分隔 矩阵行与行之间用 分号分号 “;” 分开
21、 直接输入法中,分号可以用 回车回车 代替 例:a=1 2 3 4 5 6; 7 8 9; 1 2 336外部数据文件输入矩阵v load 读取ASCII码的DAT文档v wavread 读取Microsoft的WAV格式的音频文件v imread 从图像文件中读取图像数据v fopen,fread,fclose构成的任意文件的读取37利用Matlab内部函数与工具箱函数产生矩阵v eye 建立单位矩阵 eye(m), eye(m,n)v ones 建立全1矩阵 ones(m), ones(m,n), ones(m,n,p)v zeros 建立全0矩阵 zeros(m), zeros(m,n)
22、,zeros(m,n,p)C1=8*ones(3,5) ?38利用Matlab内部函数与工具箱函数产生矩阵vrand 产生0,1均匀分布的随机数和阵列 rand, rand(m),rand(m,n) 产生一个2*3的-5,5之间均匀分布的随机矩阵 x = 5-10*rand(2,3); 产生一个a,b之间均匀分 布的随机矩阵 x = b + (a-b)*rand(m,n)39利用Matlab内部函数与工具箱函数产生矩阵v linspace 产生线性空间向量 y=linspace(a,b) y=linspace(a,b,n) y=linspace(1,5,5) y = 1 2 3 4 5 40利
23、用Matlab内部函数与工具箱函数产生矩阵vdiag 产生对角阵 a = diag(d,k); d为向量 表示向量d位于矩阵a的第k条对角线上,其他元素为0 当k=0或缺省时,表示d位于主对角上, 当k0时,表示d位于主对角线之上的第k条对角线上 当kx=-1.3, sqrt(3), (1+2+3)*4/5v矩阵元素的单独赋值 例:x(5)=abs(x(1) 例:x(5)=abs(x(6)?注:Matlab自动将向量x的长度扩展到5,并将未赋值部分置零。43矩阵元素赋值v大矩阵可以把小矩阵作为其元素 例:a=a; 11 12 13 a =a; 11 12 13 如何在原矩阵的右边添加一列? a
24、= 1; 2; 3; 4; 5 添加一列1 2 3 4 5 一 b=1; 2; 3; 4; 5 a=a b 二 a=a 1;2;3;4;544矩阵元素的引用v单个元素的引用单个元素的引用 例:a(2,3) a(4)? 利用小括弧和元素所在的位置(下标)v多个元素的引用:多个元素的引用:冒号的特殊用法冒号的特殊用法 x(i): 向量x中的第i个元素a(i,j): 矩阵A中的第i行j,第j列元素a:b:c产生一个由等差序列等差序列组成的向量;a是首相,b是公差,c为最后一项;若b=1则可省略例:x=1:2:5 例:x=2:1:5 例:x =3:-2:1 x=1:2:5 y=2:545矩阵元素的引用
25、v多个元素的引用(续) 例:x(1:3) a(3,1:3)a(i:j,m:n)表示由矩阵a的第i到第j行和第m到第n列交叉线上的元素组成的子矩阵。可利用冒号提取矩阵的整行或整列。例:a(1,:) a(:,1:2) a(: , :)46矩阵的扩大v连接操作符 如如 b=a a+5;a-5 zeros(size(a)v阵列的连接 cat C= cat(dim,A,B); 将矩阵A和B沿着第dim维连接起来,1维表示沿列方向,2表示沿行的方向v矩阵的复制并平铺阵列(重复函数) repmat B=repmat(A,m,n);47矩阵求和vsum 对矩阵元素按列求和 a = 1 2 3 10 20 30
26、 4 5 6 sum(a) ans =15 27 39 如要按行求和: sum(a)48矩阵删除v利用空矩阵利用空矩阵 删除指定的行或者列删除指定的行或者列 a(2,:)= % 表示删除a的第2行 a = 1 2 3 7 8 9v利用单下标删除单个元素或多个元素,剩余部分变成行向量 % 删除单个元素只有这种方式 a(3)= a = 1 4 2 5 8 3 6 9 49操作符和特殊字符(一)v算术操作符:算术操作符:+ - * / A+B,A-B: 相同尺寸简单加、减运算; A*B: 线性代数积 A.*B:对应元素相乘 A/B,AB: 矩阵右(左)除 右除A/B相当于A*inv(B) 左除AB
27、相当于inv(A)*B A./B,A.B:矩阵对应元素右 (左)除 AB:矩阵幂,指数为标量或底数为标量,不可同时为标量 A: 矩阵转置,若A为复数矩阵,则求出共轭转置。 A.:矩阵转置,若A为复数矩阵,也不求不求共轭。1( , )*( , )*( , )nkC i jA BA i kB k j50操作符和特殊字符(二)vKron: Kronecker 张量积: K=kron(X,Y)v冒号: 建立向量、阵列的下标或用于迭代。 j:i:k 初始值为j,步长为i,终值为k A(:,j) 取A的第j列 A(i,:) 取A的第i行 A(:,:) 等效于二维阵列,对矩阵而言,它等同于A A(j:k)
28、取出A的第j,j+1,j+2,k个元素 A(:,j:k) 取出A的第j列到第k列的数据 A(:,:,k) 取出三维阵列A的第k列 A(:) 将A中的所有元素排列成列向量 51操作符和特殊字符(三)v逻辑操作符逻辑操作符:&,|, 有相应的m文件and,or,not A&B 等效为and(A,B) A|B 等效为or(A,B) A 等效为not(A)vXOR:异或操作 C=XOR(A,B)完成阵列A和B对应元素的异或操作v关系操作符:关系操作符: ,=, , 1 语句1 elseif a=1 语句2 else 语句3 end52时间和日期vtic,toc:测定程序运行时间(tictest.m)vDate,now,clock 可以得到当前的日期信息vEtime,cputime 计算使用时间,CPU时间 vDatestr,dateevc vDatenumvWeekday,eomdayvcalendar53基本数学函数v三角函数v指数和对数函数v复数函数v取整和求余函数(rem、mod) fix 朝零方向取整 floor 朝负无穷大方向取整 ceil 朝正无穷大方向取整 round 朝最近的整数取整(四舍五入) mod 模数(即有符号的除后余数) M=mod(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品质量持续改进培训课件
- 电子产品回收处理标准
- 单病种临床路径管理制度
- 智能小区物联网应用系统
- 《Excel数据获取与处理实战》 课件 陈青 第3、4章 数据的输入、工作表的格式化
- 溶剂泄露应急处置
- GMP基础知识培训
- 病从口入教案反思
- 胸腔闭式引流器的护理
- 城市娱乐设施建筑平房施工合同
- GB/T 43336-2023舵轮控制系统通用技术条件
- JGJT294-2013 高强混凝土强度检测技术规程
- 2022-2023学年天津市某中学高三上学期第二次月考英语试题(解析版)
- 扬州某校2023-2024苏教版五年级上册数学期中课堂练习及答案
- 高级职称竞聘PPT
- 《数字影音处理》课程标准
- 电动叉车堆垛车日常点检表
- 2022年1月浙江高考读后续写分析课件-2023届高三英语写作专项突破
- 危险化学品和烟花爆竹安全管理
- 山东航空招飞报名表
- 第23课《孟子三章-富贵不能淫》对比阅读 (含答案)
评论
0/150
提交评论