MATLAB 程序设计语言.ppt_第1页
MATLAB 程序设计语言.ppt_第2页
MATLAB 程序设计语言.ppt_第3页
MATLAB 程序设计语言.ppt_第4页
MATLAB 程序设计语言.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB 程序设计语言,Email: ,课程安排,Chapter1 Matlab 系统概述 Chapter2 Matlab 基本操作 Chapter3 Matlab 图形系统 Chapter4 Matlab 程序设计 Chapter5 Matlab 基本应用领域 Chapter6 数据阵列类型与结构 Chapter7 字符串处理,上机安排,上机日期 时段 机房 2011-3-19 8:00 12:00 E楼205 2011-4-02 8:00 12:00 E楼203 2011-4-09 8:00 12:00 E楼205 2011-4-16 14:00 18:00 E楼208 2011-5-

2、14 14:00 18:00 E楼203,MATLAB发展,Matlab的首创者是在数值线性代数领域颇有影响的Cleve Moler博士 Moler博士等一批数学家和软件家组成了Mathworks软件公司,专门从事Matlab的扩展与改进 1982年推出了第一个版本 现在每半年出一新版本201xa,201xb ,MATLAB简介,MATLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的。 集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。被誉为“巨人肩上的工具”。 使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,用

3、Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。,MATLAB自问世以来,就是以数值计算称雄。 MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。 它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。,MATLAB简介,MATLAB特点,在Matlab中,以复数矩阵作为基本编程单元,使矩阵

4、操作变得轻而易举 Matlab语句书写简单 Matlab语句功能强大 Matlab系统具有丰富的图形功能 Matlab提供许多面向应用问题求解的工具箱函数 Matlab易于扩展,移植,Chapter1 Matlab系统概述,Matlab系统组成 Matlab的重要部件 Matlab搜索路径 Matlab集成环境 Matlab通用命令,Matlab系统组成,MATLAB系统由8个主要的部分构成: MATLAB的开发环境 MATLAB的数学函数库 编程与数据类型 文件I/O 图形处理 三维可视化 创建图形用户界面 外部接口,Simulink,Simulink是一种强有力的仿真工具,它能让使用者在图

5、形方式下以最小的代价来模拟真实动态系统的运行。Simulink准备有数百种预定义系统环节模型,最先进有效的积分算法和直观的图示化工具。依托Simulink强健的仿真能力,用户可在原型机制造之前就可建立系统的模型,评估设计并修补瑕疵。 Simulink 作为一种图形化的仿真工具,可用于对动态系统建模和控制规律的研究制定。由于支持线性、非线性、连续、离散、多变量和混合式系统结构,Simulink几乎可分析任何一种类型的真实动态系统。,工具箱(Toolboxes),工具箱是为了解答特别种类的问题扩展MATLAB环境的MATLAB函数的集合。在工具箱中,Matlab提供了许多实用的函数,它给各个领域应

6、用人员带来了方便。 Control system Communications Financial Image Processing Neural Network Signal Processing Wavelet,Matlab集成环境,运行MATLAB的可执行文件,自动创建MATLAB指令窗口(Command Window)。这种指令窗如图所示:命令窗口的是输入命令和输出结果的窗口,在这里输入的命令会立即得到执行,并输出。 Matlab功能选单共有File, Edit, Debug, Desktop, Window, Help六个主要功能,每个之下各又有下一层的功能。 初学者,可以在指令窗键

7、入demo,这可是学习的好帮手。 一旦发现指令不知如何使用时,help, doc命令将告诉你使用。,Matlab的集成环境就是Matlab的编程环境,在这一环境中提供了许多编写、调试和执行Matlab程序的便利工具。,Matlab集成环境,在MATLAB下进行基本数学运算,只需将运算式直接打入提示号()之后,并按入Enter键即可。 MATLAB可以将计算结果以不同精确度的数字格式显示,我们可以在指令视窗上的功能选单上的Flie下选Preferences,更改 Numeric Format的属性,或者直接在指令窗口中通过format命令加以控制。 MATLAB利用了二个游标键可以将所使用的指令

8、调回来重复使用。按下则前一次指令重新出现,之后再 按Enter键,即再执行前一次的指令。而键的功用则是往后执行指令。 Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。,Matlab集成环境,编辑M文件 将Matlab语句按一定的顺序结合在一起,就得到了Matlab程序,其文件名的后缀为m,故称为M文件。 Matlab提供了M文件的专门编辑/调试器。 启动编辑器方式(2种),Matlab集成环境,Matlab的.m文件保存的命名规则: 1.文件名为字母、数字和下划线组成的,第一个字符必须是字母 2.文件名不要取为matlab的一个固有函数名,m文件名的命名尽量不

9、要是简单的英文单词。原因是简单的单词命名容易与matlab内部函数名同名,结果出现一些莫名其妙的错误。 3.文件存储路径一定要为英文。 4.中间不能有空格和标点符号,工作目录的建立和设置,为方便管理,每个用户在使用Matlab前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建的应用文件。 例如,首先打开资源管理器,在E驱动器下可以根据自己的喜好建立一个新文件夹,但应注意:该文件夹必须以英文开头,文件夹名字中可以包括字母、数字和下划线,不要使用其他的字符,更不要单纯使用数字或者中文命名,有时在运行matlab中一些莫名其妙的错误可能就是不规范的命名引起的,这与matlab中变

10、量和文件名的命名原则是一致的。 尽管MATLABwork允许用户存放用户文件,但最好把它仅作为临时工作目录来使用 为了运行方便,在开始工作前把用户定义的目录设置为当前目录,方法是可直接在MATLAB命令窗口上方通过目录设置来实现,Matlab搜索路径,当用户输入一个标识符(例如value)时,Matlab按下列步骤进行处理: (1)检查value是否为变量 (2)检查value是否为内部函数 (3)在当前工作目录下是否存在value.m 文件 (4)在Matlab搜索路径上是否存在value.m文件 如果在搜索路径上存在多个value.m文件,则只执行所找到的第一个value.m文件,如果找不

11、到,则给出出错信息,Matlab通用命令,管理命令和函数 管理变量和工作空间 控制命令窗口 使用文件和工作环境 启动和推出Matlab,管理命令和函数,help Matlab函数和M文件在线帮助 version 版本号 ver 显示Mathworks产品的版本信息 path 控制Matlab的目录搜索路径 addpath 将目录添加到Matlab的搜索路径上 rmpath 从Matlab的搜索路径上删除目录 whatsnew 显示出Matlab工具箱的Readme文件 what 直接列出当前目录下的M文件、MAT文件和MEX 文件 which 函数和文件定位 type 列出文件 doc 在he

12、lp浏览器窗口中打开帮助信息 lookfor 从所有帮助目录中查找关键字 lasterr 显示上一个出错信息 error 显示出错信息 profile 测量并显示出M文件执行的效率,管理变量和工作空间,who, whos 列出内存中的变量 disp 显示文本或阵列 clear 清除工作空间中的变量 mlock 防止M文件被删除 munlock 允许删除M文件 size 求阵列中维大小 length 求阵列或向量长度,等效于max(size(X), save 将工作空间变量保存到磁盘 load 从磁盘中恢复变量 pack 释放工作空间内存,控制命令窗口,echo 执行过程中显示M文件 forma

13、t 控制输出显示格式 more 控制命令窗口的分页显示,使用文件和工作环境,diary 在磁盘文件中保存任务 dir 列出目录下的文件 cd 改变工作目录 mkdir 建立目录 copyfile 复制文件 delete 删除文件和图形对象 edit 编辑M文件 inmem 获得内存中的函数 matlabroot 获得Matlab安装目录 fullfile 从部分中构造文件全名 fileparts 获得文件的组成部分 tempdir 返回系统临时工作目录名 tempname 产生临时文件的唯一文件名,启动和退出Matlab命令,matlabrc 启动Matlab的M文件 startup 启动Ma

14、tlab的M文件 quit 终止(结束)Matlab,Chapter2 Matlab 基本操作,表达式 矩阵基础 操作符和特殊字符 基本数学函数 逻辑函数,表达式,变量 数值 函数 操作符,变量,变量名可以包含下划线、字母、数字,但中间不能有空格、标点 变量名最好是描述性的,有意义的 例如,day, month, year, change_rate Matlab区分大小写,例如 NAME, name 变量的第一个字符必须为英文字母,而且不能超过31个字符。 变量不需要预先定义,固定变量和常数,ans 预设的计算结果的变量名 eps MATLAB定义的正的极小值=2.2204e-16 pi 内建

15、的值 Inf 正无穷大 NaN 表示不定值 i 或 j 虚数单位 nargin 函数输入参数个数 nargout 函数输出参数个数 realmax 最大的正浮点数 realmin 最小的正浮点数,数值,十进制:3,8,-39 科学计数法:1.6e-21,-3.24e20 复数:-4+3.6j,7803.2e2i 浮点数:范围在10-308 10308 二进制数、十六进制数均当作字符串输入,通过字符串函数bin2dec,hex2dec将其转换为十进制数,函数,函数分类:内部函数、Toolboxes中实用函数、用户自定义函数。 函数用法:1)嵌套:x=sqrt(log(z) 2)多输入: thet

16、a=atah2(y,x) 3)多输出:y,i=max(x),操作符,算术运算:+, -, /, (见P29,P46) 关系运算 逻辑运算,表达式,将变量、数值、函数用操作符连接起来,就构成了表达式。 MATLAB书写表达式的规则与“手写算式”差不多相同。 如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续),例如 3*. 6 ans = 18,表达式示例,a=(1+sqrt(10)/2; b=abs(3+5i); c=sqrt(bessell(4/3), a-i); d=sin(exp(-2.3); e=pi*d,矩阵基础,矩阵的输入 矩阵的存储 矩阵的操作,矩阵输入,输入元素列表 从

17、外部数据文件中读取矩阵 利用Matlab内部函数与工具箱函数产生矩阵 用户自己编写m文件产生矩阵,直接输入矩阵,输入元素列表 a=1 2 3;4 5 6;7 8 9; b=1:3,4:6,7:9; 矩阵整个元素列表用方括号扩起来 矩阵行与行之间用分号或回车间隔 矩阵行中的每个元素之间以空格或逗号间隔,外部数据文件输入矩阵,load 读取ASCII码的DAT文档 wavread 读取Microsoft的WAV格式的音频文件 imread 从图像文件中读取图像数据 fopen,fread,fclose构成的任意文件的读取,利用Matlab内部函数与工具箱函数产生矩阵(P32),eye 建立单位矩阵

18、 eye(m), eye(m,n) ones 建立全1矩阵 ones(m), ones(m,n), ones(m,n,p) zeros 建立全0矩阵 zeros(m), zeros(m,n),zeros(m,n,p),利用Matlab内部函数与工具箱函数产生矩阵,rand 产生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),利用Matlab内部函数与工具箱函数产生矩阵,randn 产生均值为

19、0,方差为1的正态分布的随机数和阵列 randn,randn(m),randn(m,n) 产生一个2*3的均值为3,方差为4的正态分布的随机矩阵 x = 3+sqrt(4)*randn(2,3); 产生一个均值为 mean,方差为variance的m*n的随机矩阵 x = mean + sqrt(variance)*randn(m,n);,利用Matlab内部函数与工具箱函数产生矩阵,linspace 产生线性空间向量 y=linspace(a,b) y=linspace(a,b,n) y=linspace(1,5,5) y = 1 2 3 4 5,利用Matlab内部函数与工具箱函数产生矩阵

20、,diag 产生对角阵 a = diag(d,k); d为向量 表示向量d位于矩阵a的第k条对角线上,其他元素为0 当k=0或缺省时,表示d位于主对角上, 当k0时,表示d位于主对角线之上的第k条对角线上 当k0时,表示d位于主对角线之下的第k条对角线上 d=2 -10 8; a= diag(d); a = 2 0 0 0 -10 0 0 0 8,矩阵元素的存储和读取,矩阵存储: 矩阵元素是按列存储的 矩阵读取: 1)只用一个下标来寻址:a(i)表示存储器中的第i个元素 2)用两个下标来寻址:a(i,j)表示矩阵中的第i行第j列的元素 例如: a=1 2 3;10 20 30 a = 1 2

21、3 10 20 30 a(2) ans = 10 a(2,1) ans = 10,矩阵操作,矩阵的对角化 X=diag(V,k) 当V为向量,则X为矩阵,V构成X的第k条对角线,其他元素为0 当V为矩阵,则X为矩阵V中的第k条对角线上的数据 矩阵重新排列 (1)利用冒号: 给定矩阵A,B=A(:),表示将A中所有元素排列成一维列向量 (2) reshape B=reshape(A,m,n) 矩阵旋转 rot90 B=rot90(A,k) 矩阵左右翻转 fliplr 矩阵上下翻转 flipud 矩阵的下三角阵 tril tril(X,k) 矩阵的上三角阵 triu triu(X,k),矩阵操作,

22、阵列的连接 cat C= cat(dim,A,B); 将矩阵A和B沿着第dim维连接起来,1维表示沿列方向,2表示沿行的方向 矩阵的复制并平铺阵列 repmat B=repmat(A,m,n);,矩阵求和,sum 对矩阵元素按列求和 a = 1 2 3 10 20 30 4 5 6 sum(a) ans =15 27 39,矩阵删除,利用空矩阵删除指定的行或者列 a(2,:)= % 表示删除a的第2行 a = 1 2 3 4 5 6 利用单下标删除单个元素或多个元素,剩余部分变成行向量 % 删除单个元素只有这种方式 a(3)= a = 1 4 5 3 6,操作符和特殊字符(一),算术操作符:+

23、 - * / A+B,A-B: 相同尺寸简单加、减运算; A*B: 线性代数积 A.*B:对应元素相乘 A/B,AB: 矩阵右(左)除 右除A/B相当于A*inv(B) 左除AB 相当于inv(A)*B A./B,A.B:矩阵对应元素右 (左)除 AB:矩阵幂,指数为标量或底数为标量,不可同时为标量 A: 矩阵转置,若A为复数矩阵,则求出共轭转置。 A.:矩阵转置,若A为复数矩阵,也不求共轭。,操作符和特殊字符(二),Kron: Kronecker 张量积: K=kron(X,Y) 冒号: 建立向量、阵列的下标或用于迭代。(P48) j:i:k 初始值为j,步长为i,终值为k A(:,j) 取

24、A的第j列 A(i,:) 取A的第i行 A(:,:) 等效于二维阵列,对矩阵而言,它等同于A A(j:k) 取出A的第j,j+1,j+2,k个元素 A(:,j:k) 取出A的第j列到第k列的数据 A(:,:,k) 取出三维阵列A的第k列 A(:) 将A中的所有元素排列成列向量,操作符和特殊字符(三),逻辑操作符: % x 是阵列 x = Columns 1 through 9 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 Columns 10 through 11 1.9000 2.0000 y = exp(x.2

25、); % exp(x.2) 是阵列运算 y = Columns 1 through 9 2.7183 3.3535 4.2207 5.4195 7.0993 9.4877 12.9358 17.9933 25.5337 Columns 10 through 11 36.9661 54.5982,阵列运算的特色,标量与阵列运算的差别 x=2.0 % x 是一标量 nume = x3 - 2*x2 + x - 6.3; deno = x2 + 0.05*x - 3.14; f = nume/deno =-4.4792 x=1:5; % 注意 x 是一阵列 nume = x.3 - 2*x.2 +

26、x - 6.3; deno = x.2 + 0.05*x - 3.14; f = nume./deno=3.0144 -4.4792 0.9484 2.2741 3.3333,时间和日期(P58),tic,toc:测定程序运行时间(tictest.m) Date,now,clock 可以得到当前的日期信息 Etime,cputime 计算使用时间,CPU时间 Datestr,dateevc Datenum Weekday,eomday calendar,基本数学函数,三角函数 指数和对数函数 复数函数 取整和求余函数(rem、mod) fix 朝零方向取整 floor 朝负无穷大方向取整 ceil 朝正无穷大方向取整 round 朝最

温馨提示

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

评论

0/150

提交评论