张志涌matlab第一讲基础准备入门2015.ppt_第1页
张志涌matlab第一讲基础准备入门2015.ppt_第2页
张志涌matlab第一讲基础准备入门2015.ppt_第3页
张志涌matlab第一讲基础准备入门2015.ppt_第4页
张志涌matlab第一讲基础准备入门2015.ppt_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机仿真技术(MATLAB),计算机与通信工程学院,课程的作用 课程的目的 课程的特点 课程安排,课程的作用,在欧美各高等学校,Matlab成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为本科生、硕士生和博士生的必须掌握的基本技能。 在设计研究单位和工业部门,Matlab已被广泛地用于研究和解决各种具体的工程问题。 可以预见,Matlab将在我国科学研究和工程应用中发挥越来越大的作用。,讲授MATLAB语言基础入门知识,介绍MATLAB桌面工具的使用方法,重点介绍MATLAB的数据可视化、数值计算的基本步骤以及如何使用MATLAB语

2、言编写整洁、高效、规范的程序。 通过本课程的学习,了解、熟悉、掌握 MATLAB的基本编程方法,并具有初步的利用计算机处理、解决实际问题的能力,为进一步学习后续的专业课程做好准备。,本课程的目的( Objectives of This Course ),本课程的特点( Features of This Course ) 交叉性课程,是计算机技术、数学理论知识以及诸多工程理论知识的综合。 实践性课程。 内容多,课时少,要求同学上课认真听讲,要充分利用上机实践消化、理解、 掌握课上讲解内容。,1.3 MATLAB编程语言的特点,语法规则简单。尤其内定的编程规则,与其他编程语言(如C、Fortran

3、等)相比更接近于常规数学表示。对于数组变量的使用,不需类型声明,无需事先申请内存空间。扩充能力、可开发能力较强,MATLAB完全成了一个开放的系统用户可以开发自己的工具箱可以方便地与Fortran、C等语言接口,MATLAB语言主要有以下几个特点:,MATLAB基本的语言环境提供了数以千计的计算函数,极大的提高了用户的编程效率。如,一个fft函数即可完成对指定数据的快速傅里叶变换,这一任务如果用C语言来编程实现的话,至少要用几十条C语言才能完成。,因此,MATLAB是一个简单易用、功能强大的高效编程语言。,平台无关性(可移植性)。MATLAB软件可以运行在很多不同的计算机系统平台上,如Wind

4、ows Me/NT/2000/XP、很多不同版本的UNIX以及Linux。无论你在哪一个平台上编写的程序都可以运行在其它平台上,对于MATLAB数据文件也一样,是平台无关的。极大保护了用户的劳动、方便了用户。其绘图功能也是平台无关的。无论任何系统平台,只要MATLAB能够运行,其图形功能命令就能正常运行。,MATLAB是一种脚本式(scripted)的解释型语言,无论是命令、函数或变量,只要在命令窗口的提示符下键入,并“回车(Enter)”,MATLAB都予以解释执行。,功能强大 数值运算优势 符号运算优势(Maple) 强大的2D、3D数据可视化功能 许多具有算法自适应能力的功能函数,课程安

5、排,课堂教学:共24学时;(9-14周) (G119,周二,5-6节;G311,周四,1-2节) 学习成绩: 1) 上机实验成绩占30%; 2) 考勤 10% ; 3) 作业 60% 。 主要参考书 Matlab教程R2011a张志涌,杨祖樱等编著,北航出版 2010 精通MATLAB 6.5张志涌 等编著,北航出版,2003年,授课宗旨,讲授MATLAB的通用功能。 寓教于例,由浅入深。,MATLAB课程介绍,目标(in MATLAB): 掌握数学(矩阵)运算 掌握简单编程 掌握简单的数据处理及基本图形绘制,学习内容一、基础准备及入门二、符号计算三、数值数组及向量化运算四、数值计算五、数据和

6、函数的可视化六、M文件和函数句柄,第一讲 Matlab基础准备及入门,前言 Matlab软件概述 Matlab的桌面环境及入门知识,第一章 基础准备及入门,一. MATLAB简介 MATLAB是什么 ? 一个高性能数值计算和可视化工程数学软件。 关键词:数值计算 可视化 工程数学,1980年,美国的Clever Moler博士 为了解决“线性代数”课程的矩阵运算问题, 编写了一套完整的计算机程序,取名 MATLAB即Matrix Laboratory 矩阵实验室。,MATLAB的历史及影响,70年代中期,Cleve Moler博土及其同事在美国国家基金会的帮助下,开发了LINPACK和EISP

7、ACK的FORTRAN语言子程序库,这两个程序库代表了当时矩阵运算的最高水平。 到了70年代后期,身为美国新墨西哥州大学计算机系系主任的CIeve Moler,他将这个程序取名为MATLAB,其名称是由MATrix和 LABoratory(矩阵实验室)两个单词的前三个字母所合成。 在1978年,Matlab就面世了。这个程序获得了很大的成功,受到了学生的广泛欢迎。在以后的几年里,Matlab在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。,Cleve Moler,将MATLAB商品化的不是Cleve Moler,而是一个名叫Jack Little的人。当免费的MATLAB软

8、件到Stanford大学,Jack Little正在该校主修控制,便接触到了当时MATLAB,直觉告诉他,这是一个具有巨大发展潜力的软件。因此他在毕业沒多久,就开始用C语言重新编写了MATLAB的核心。在Moler的协助下,于1984年成立MathWorks公司,首次推出MATLAB商用版。在其商用版推出的初期,MATLAB就以其优秀的品质(高效的数据计算能力和开放的体系结构)占据了大部分数学计算软件的市场,原来应用于控制领域里的一些封闭式数学计算软件包(如英国的UMIST、瑞典的LUND和SIMNON、德国的KEDDC)就纷纷被淘汰或在MATLAB上重建。,Jack Little,Cleve

9、 Moler至今仍是该公司的首席科学家,他以60多岁的高龄,还常常亲自进行撰写程序的工作,非常令人佩服。如果你有数值运算方面的高水平问题,寄到 MathWorks 后,大部份还是会由 Cleve Moler亲自回答。在1994年,Pentium芯片曾发生Fdiv的bug, 当时Cleve Moler是第一个以软件方式解决此 bug的人,曾一时脍炙人口。,在公司初创的五年,Jack Little非常辛苦,常常身兼数职(董事长、总经理、推销、程序开发等),但公司一直稳定发展,从当初的一人公司,到1993年的200人,到2000年的 500余人,到2005年公司员工达到了1300人,不但打败其他竞争

10、软件,而且前景一片欣欣向荣。根据Jack Little个人说法,MATLAB早期成功的两大因素是:选用了C语言及选定PC为主要平台,这似乎和微软的成功有相互呼应之妙。,MathWorks公司,目前仍然是私人企业,并未上市,这和Jack Little个人理念有关,他认为MATLAB的设计方向应该一直是以顾客的需求与软件的完整性为首要目标,而不是以盈利为主要目的,因此MATLAB一直是在稳定中求进步,而不会因为上市而遭受股东左右其发展方向。这也是为什么MATLAB新版本总是姗姗来迟的原因,因为他们不会因为市场的需求而推出不成熟的产品。此外,由于Jack Little保守的个性,也使得MathWor

11、ks不曾跨足MATLAB/Simulink以外的行业,当前商场上纷纷扰扰的并购或分家,MathWorks完全是绝缘体。,1992年,支持Windows 3.x的MATLAB 4.0版本推出,增加了Simulink,Control,Neural Network,Signal Processing等专用工具箱。,1993年11月,MathWorks公司推出了Matlab 4.1,其中主要增加了符号运算功能。当升级至Matlab 4.2c,这一功能在用户中得到广泛应用。,1997年,Matlab 5.0版本问世了,实现了真正的32位运算,加快数值计算,图形表现有效。,2001年初,MathWorks

12、公司推出了Matlab 6.0(R12)。,2002年7月,推出了Matlab 6.5(R13),在这一版本中Simulink升级到了5.0,性能有了很大提高,另一大特点是推出了JIT程序加速器,Matlab的计算速度有了明显的提高。,2005年9月,推出了MAILAB 7.1(Release14 SP3),在这一版本中Simulink升级到了6.3,软件性能有了新的提高,用户界面更加友好。值得说明的是,Matlab V7.1版采用了更先进的数学程序库,即“LAPACK”和“BLAS”。 目前,Matlab软件支持多种系统平台,如常见的WindowsNT/XP、UNIX、Linux等。,Mat

13、lab版本的发展,MATLAB就是这样经过了近30年的专门打造、20多年的千锤百炼,它以高性能的数组运算(包括矩阵运算)为基础,不仅实现了大多数数学算法的高效运行函数和数据可视化,而且提供了非常高效的计算机高级编程语言,在用户可参与的情况下,各种专业领域的工具箱不断开发和完善,MATLAB取得了巨大的成功,已广泛应用于科学研究、工程应用,用于数值计算分析、系统建模与仿真。 早在20世纪90年代初,欧美等发达国家的大学就将MATLAB列为一种必须掌握的编程语言。近几年来,国内的很多大学也将MATLAB列为了本科生必修课程。 与Maple、Mathematica数学计算软件相比,MATLAB以数值

14、计算见长,而Maple等以符号运算见长,能给出解析解和任意精度解,而处理大量数据的能力远不如MATLAB。 MATLAB软件功能之强大、应用之广泛,已成为为21世纪最为重要的科学计算语言。可见学习掌握这一工具的重要性。,Matlab的几大特点:,数值计算 可视化 工程应用,在数值计算方面,可以进行基本加减乘 除,微积分,方程组求解,函数拉格朗日展 开,矩阵求解,求特征值,概率分布,插值 函数等。,数值计算,(3).丰富的绘图功能与计算结果的可视化,具有高层绘图功能两维、三维绘图 具有底层绘图功能句柄绘图 使用plot函数可随时将计算结果可视化,1、基础准备及入门,本章有三个目的: 1、 讲述M

15、atlab正常运行所必备的基础条件; 2、简明地介绍Matlab及其操作桌面Desktop 的基本使用方法。 3、介绍Matlab的帮助系统。,1.1 MATLAB的桌面环境及入门知识,Matlab的安装和工具包的选择 Desktop操作桌面的启动 Command Window运行入门 Command Window操作要旨 Command History历史指令窗 Current Directory路径设置器和文件管理 工作空间浏览器和变量可视化 Editor/Debugger和脚本编写初步 帮助系统及其使用,MATLAB的安装,安装选项: Typical: 用到光盘上MATLAB的所有功能及

16、工具包,要求硬盘的自由空间大于3G。 Custom: 可根据需要,在“Select products to install”栏中勾选相应的组件。对一般用户来说,完全不必采取全部安装,而应根据需要有所选择。,1.2 Matlab的安装和工具包的选择,1、Matlab软件所在的目录 2、Matlab自动生成的供用户使用的目录,Matlab软件所在的目录: 该目录位置及目录名,都是用户在安装过程中指定的。比如,C:matlab R2012a. 改目录包含Matlab运行所需的所有文件,如启动文件、各种工具包等。 Matlab 自动生成的供用户使用的工作子目录。 该子目录是安装matlab时由软件自动

17、生成的。用户在matlab 指令窗中,运行path指令后,所显示的matlab完整搜索路径列表的最上方就是该工作目录的全部路径。例如: C:UserszyzhangDocumentsmatlab. 该工作子目录的名称是matlab.它一方面可以存放用户操作matlab所产生的M,Mat等文件另一方面该子目录上的文件,又都可以被在matlab环境中运行的指令所调用。,1.2 启动与退出MATLAB,启动MATLAB 直接用鼠标双击桌面上MATLAB图标 或Windows桌面的“开始”“所有程序”“MATLAB” 。 退出MATLAB 关闭MATLAB桌面 在命令窗口执行quit或exit命令 M

18、ATLAB缺省桌面(见下页),菜单栏,工具栏,文件编辑窗口,工作空间,历史命令 窗口,Start 菜单,命令窗口,命令提示符,1.2 启动与退出MATLAB (续),(1)指令窗 该窗是进行各种matlab操作的最主要窗口。在该窗口内,可键入各种送给matlab运作的指令、函数、表达式;显示图形外的所有运算结果;运行错误时,给出相关出错的提示。 (2)当前目录浏览器 在该浏览器中,展示着子目录、M文件、Mat文件,可直接送入matlab工作内存。对该目录上的各种文件,可进行windows平台的各种标准操作。此外,在当前目录正下方,还有一个“文件简况栏”。该窗显示所选文件的概况信息。比如该窗会展

19、示:M函数文件的H1行内容,最基本的函数格式,所包含的内嵌函数和其他子函数。 (3)工作空间浏览器 该浏览器默认地位于当前目录浏览器的后台。该窗口罗列出matlab工作空间中所有的变量名、大小、字节数,在该窗口中,可对变量进行观察、图示、编辑、提取和保存。,(4)历史指令窗 该窗记录已经运作过得指令、函数、表达式、及他们运行的日期、时间。该窗中的所有指令、文字都允许复制、重运行及用于产生M文件。,1.3 Command Window 运行入门1.3.1Command Window指令窗的使用,激活指令窗口。 “” 与闪烁的光标一起表明系统就绪,等待输入。 命令窗口脱离MATLAB桌面。 简单计

20、算 【例1.3-1】计算 (1)在MATLAB指令窗口输入 以下内容: (12+2*(7-4)/32 (2)按【Enter】键,指令执行。 (3)返回的计算结果: ans= 2,1.3 命令窗口 (续),说明 在命令窗口【Enter】键提交命令执行。 Matlab所用运算符(如+、-、等)是各种计算程序中常见的。 计算结果中的“ans”是英文“answer”的一种缩写,其含义就是“运算答案”。ans是Matlab的一个预定义变量。,【例1.3-2】“续行输入”法。本例演示:或由于指令太长,或出于某种需要,输入指令行必须多行书写时,该如何处理。,S=1-1/2+1/3-1/4+ . 1/5-1/

21、6+1/7-1/8 S = 0.6345,说明: 1、Matlab用3个或3个以上的连续黑点表示续行,即表示下一行是上一行的继续。 2、本例指令中包含赋值号,因此表达式的计算结果被赋给了变量S. 3、指令执行后,变量S被保存在Matlab的工作空间(Workspace)中备用。如果用户不用clear指令清除它,或对它重新复制,那么该变量会一直保存在工作空间中,直到本Matlab指令窗被关闭为止。,上节算例只演示了计算器功能,那仅是Matlab全部功能中小小的一角。为深入学习Matlab,有必要系统地介绍一些基本规定。本节先介绍关于变量的若干规定。,1.3.3 数值表示、变量及表达式,1.3.3

22、 数值表示、变量及表达式,数值的记述 Matlab的数只采用习惯的十进制表示,可以带小数点和负号;其缺省的数据类型为双精度浮点型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6 变量命令规则 变量名、函数名对字母的大小写是敏感的。如myVar与myvar表示两个不同的变量。sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。 变量名第一个字母必须是英文字母。最多包含63个字符(英文,数字和下连符)。如myvar201是合法的变量名。 变量名可以包含英文字母、下划线和数字。变量名不能包含空格、标点。如变量名my_var_201是合法的,且读起来更方便。

23、而my,var201由于逗号的分隔,就不能表示一个变量名。,用户定义变量名的两个忌讳,用户变量名不应与Matlab关键词(如for,if/else,end等)同名。 用户变量名尽量不与Matlab自用的变量名(如eps,pi等)、函数名(如sin,eig等)、文件夹名(如rtw,toolbox等)相同。 为帮助用户判断所定义变量名(如UserName)是否“犯忌”,Matlab提供以下两个判断指令: Iskeyword UserName 若运行结果为0,表示UserName不同于MATLAB关键词。 Exist UserName若运行结果为0,表示UserName不同于Matlab自用变量名、

24、函数名、文件夹名。,1.3 数值表示、变量及表达式 (续),说明 每当MATLAB启动完成,这些变量就被产生。 MATLAB中,被0除不会引起程序中断,给出报警的同时用inf或NaN给出结果。 用户只能临时覆盖这些预定义变量的值,Clear或重启MATLAB可恢复其值。,表1.3.1 matlab为数学常数预定义的变量名,1,假如用户对表中任何一个预定义变量中进行赋值,则该变量的默认值将被用户新赋的值临时覆盖。 加入使用clear指令清楚Matlab内存中的变量,或matlab指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,不管这些云定义变量 曾被用户赋过什么值,1.3 数值表示

25、、变量及表达式 (续),运算符和表达式,说明 Matlab用“”和”/”分别表示“左除”和“右除”。对标量而言,两者没有区别。对矩阵产生不同影响。 MATLAB表达式的书写规则与“手写方式”几乎完全相同。 表达式按与常规相同的优先级自左至右执行运算。 优先级:指数运算级别最高,乘除次之,加减最低。 括号改变运算的次序。 书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。,1.3 数值表示、变量及表达式 (续),面向复数设计的运算,复数 直角坐标表示和极坐标表示之间转换的Matlab指令如下:,real(z) 给出复数z的实部a=rcos (theta) image(z) 给出复数

26、z的虚部b=rsin(theta) abs(z) 给出复数z的模 angle(z) 以弧度为单位给出复数z的幅角,例1.3-4 复数z1=4+3i,z2=1+2i, 表达,及计算 。本例演示:正确的复数输入法;设计复数表示方式的基本指令。,(1)经典教科书的直角坐标表示法 z1= 4 + 3i % 合法,但建议少用 z1 = 4.0000+3.0000 i,(2)采用运算符构成的直角坐标表示法和极坐标表示法 z2 = 1 + 2 * i%运算符构成的直角坐标表示法 z3=2*exp(i*pi/6) %运算符构成的极坐标表示法 z=z1*z2/z3 z2 = 1 + 2i z3 = 1.7321

27、 +1i z = 1.884 + 5.2631i (3)复数的实部、虚部、模和幅角计算 real_z=real(z) image_z=imag(z) magnitude_z=abs(z) angle_z_radian=angle(z) %弧度单位 angle_z_degree=angle(z)*180/pi % 度数单位,2.3 数值表示、变量及表达式 (续),real_z = 1.884 image_z = 5.2631 magnitude_z = 5.5902 angle_z_radian = 1.2271 angle_z_degree = 70.305,【例1.3-5】图示复数z1=4+

28、3i和z2=1+2i; 的和。,z1=4+3*i;z2=1+2*i; %在一个物理行中,允许输入多条指令 %同一行各指令间要用“分号”或“逗号”分开 % 指令后采用“分号”,使运算结果不显示 z12=z1+z2 % 以下用于绘图 clf,hold on %clf清空图形窗。逗号用来分隔两个指令 plot(0,z1,z12,-b,LineWidth,3) plot(0,z12,-r,LineWidth,3) plot(z1,z12,ob,MarkerSize,8) hold off,grid on, axis equal axis(0,6,0,6) text(3.5,2.3,z1) text(5

29、,4.5,z2) text(2.5,3.5,z12) xlabel(real) ylabel(image) z12 =5.0000 + 5.0000i,本例演示:Matlab的运算在复数域上进行;指令后“分号”的作用;复数加法的几何意义;展示Matlab的可视化能力(只需感受,还不需理解),图1.3-2 两个复数相加,在matlab中,标量数据被看做(1*1)的数组数据。所有数据都被存放在适当大小的数组中。为加快计算速度(即运算的向量化处理),Matlab对以数组形式存储的数据设计了两种基本运算:一种是所谓的数组运算;另一种是所谓的矩阵运算。在此仅以算例展示matlab的计算特点,更详细的叙述

30、为第3章内容,面向数组设计的运算Matlab特点之二,面向数组设计的运算Matlab特点之二,【例1.3-7】实数数组 的“一行”输入法。本例演示:二维数组的最基本,最常用的输入法;二维数组输入的三大要素 (1)在键盘上输入下列内容 AR= 1,3;2,4 (2)按Enter键,指令被执行 (3)在指令执行后,matlab指令窗中将显示以下结果 AR = 1 3 2 4 说明:1、在Matlab中,不必事先对数组维数及大小做任何说明,内存将自动配置。 2、二维数组输入的三大要素:数组标识符“”;元素分隔符空格或逗号“,”; 数组行间分隔符分号“;”或“回车”。注意:所有标点符号都是“英文符号”

31、。 3、Matlab对字母大小写是敏感的。如:本例中的数组赋给了变量AR,而不是Ar,aR,或ar。 4、 在全部键入一个指令行内容后,必须按下Enter键,该指令才会被执行。,【例1.3-8】实数数组 的“分行”输入法。,AI=5,7 6,8 AI = 5 7 6 8,说明 本例采用这种输入法是为了视觉习惯。当然,对于较大的数组也可采用此法。 在这种输入法中,“回车”用来分隔数组中的行。,【例1.3-9】对复数数组 进 行求实部、虚部、模和幅角的运算。 (1)创建数组 AR=1,3;2,4;AI=5,7;6,8; A=AR-AI*i %形成复数数组 A = 1.0000 - 5.0000i

32、3.0000 - 7.0000i 2.0000 - 6.0000i 4.0000 - 8.0000i (2)求复数数组的实部和虚部 A_real=real(A) A_image=imag(A) A_real = 1 3 2 4 A_image = -5 -7 -6 -8,(3)求复数矩阵中各元素的模和幅角循环法(笨拙的方法) for m=1:2 for n=1:2 Am1(m,n)=abs(A(m,n); Aa1(m,n)=angle(A(m,n)*180/pi; %以度为单位计算幅角 end end Am1,Aa1 Am1 = 5.0990 7.6158 6.3246 8.9443 Aa1

33、= -78.6901 -66.8014 -71.5651 -63.434,(4)求复数矩阵中各元素的模和幅角直接法 Am2=abs(A) Aa2=angle(A)*180/pi Am2 = 5.0990 7.6158 6.3246 8.9443 Aa2 = -78.6901 -66.8014 -71.5651 -63.4349,说明: 1、函数real,imag,abs,angle是同时、并行地作用于数组的每个元素的。对4个元素运算所需的时间大致与对单个元素所需时间相同。这有利于运算速度的提高。这是“向量化”运算的一种形式。 2、本例给出了循环法求各元素模与幅角的指令。这不是很有效的计算方法。

34、对于Matlab以外的许多编程语言来说,可能不得不采用“循环”处理方式来解本例。 记住:对于matlab来说,应该尽量摒弃“循环”处理,而采用“向量化”处理方式。,【例1.3-10】画出衰减振荡曲线 ,的取值范围是(配图1.3-4)。,t=0:pi/50:4*pi; %定义自变量t的取值数组 y=exp(-t/3).*sin(3*t); % 计算与自变量相应的y数组,注意: %乘法符前面的小数点 plot(t,y,-r,LineWidth,2) %绘制曲线 axis(0,4*pi,-1,1) xlabel(t),ylabel(y),说明: 1、本例第二条指令中的“.*”符号表示乘法是在两个数组

35、相同的位置上的元素间进行的。本书把这种乘法称为“数组乘”。数组乘的引入,不但使得程序简洁自然,而且避免了耗费机时的“循环计算” 2、本例第二条指令是典型的“向量化”处理形式。,【例1.3-11】复数矩阵 的生成,及计算 矩阵乘积(A取自算例1.3-9)。本例演示:Matlab矩阵运算指令的简捷性。,B=3+2i,2+6i;5+3*i,4-2*i %复数数组的又一种输入方式 %注意标点符号的作用 C=A*B % 矩阵乘法 B = 3.0000 + 2.0000i 2.0000 + 6.0000i 5.0000 + 3.0000i 4.0000 - 2.0000i C = 49.0000 -39.

36、0000i 30.0000 -38.0000i 62.0000 -42.0000i 40.0000 -40.0000i,说明: 当数组被赋予“变换”属性时,二维数组就被称为矩阵。只有当两个矩阵的“内维大小相等”时,矩阵乘法才能进行。本例中,矩阵A的列数和矩阵B的行数相等,所以可以进行A乘B运算。 从表达方式看,“矩阵相乘”的指令格式与“标量相乘”指令格式一样。在其他编程语言中,矩阵乘法不得不依赖“循环”进行。 Matlab之所以能把矩阵运算表达得像标准“线性代数”那样简洁易读、自然流畅,是由于Matlab的设计者采用了“面向对象”编程技术。,前一节借助算例,使读者对MATLAB指令窗的使用方法

37、有了一个直观的感受。本节将在上一节的基础上对控制指令窗和操作进行较系统的归纳,以便读者更全面地了解Matlab,更方便地使用Matlab。,1.4 Command Window操作要旨,1.4 Command Window操作要旨,1、指令窗的显示方式 2、指令窗常用控制指令,1、指令窗的显示方式,1、默认的输入显示方式 从matlab7.0版起,指令窗中的字符、数值等便采用了更为醒目的分类显示: (1)对于输入指令中的if,for,end等控制流的matlab关键词自动地采用蓝色字体显示; (2)对于输入指令中的非控制指令,数码,都自动地采用黑色字体显示; (3)输入的字符串自动地采用紫色字

38、体显示,Command Window操作要旨,(1)数据显示格式默认短格式,可以通过format指令或菜单对话框窗口修改。,(2)字体大小,颜色等可通过file:Preferences设定。,运行中,屏幕上最常见到的数字输出结果由5位有效数字构成。这是“双精度”数据的默认输出格式。用户不要误认为,运算结果的精度只有5位有效数字。实际上,Matlab的数值数据通常占用64位(bit)内存,以16位有效数字的“双精度”进行运算和输出。Matlab为了比较简洁、紧凑地显示数值输出,才默认地采用“format short g”格式显示出5位有效数字。用户根据需要,可以在matlab指令中,直接输入相应

39、的指令,或者在菜单弹出框中进行选择,都可获得所需的数值计算结果显示格式。Matlab数值计算结果显示格式的类型见表。,1、指令窗的显示方式,2、运行结果的显示 在指令窗中显示的输出有:指令执行后,数值结果采用黑色字体输出;而运行过程中的警告信息和出错信息用红色字体显示。,表1.4-1 数据显示格式的控制指令,(3)桌面操作混乱后恢复原桌面布局。,(4)指令中的标点符号见表1.4-2,注意;的用法。 在手工创建数组时使用,如a=1 2 3; 4 5 6; 7 8 9;如果使用数组/矩阵元素时用(),如myans=a(1,2)+a(2,3)+a(3).这和C语言是不同的。,(5)常用指令,(6)指

40、令窗中可以对指令进行操作的常用操作键见表1.4-4(P18),本表无须掌握,但是掌握了速度较快。,常用的是clear、clc、edit和clf。,1.4.2 指令行中的标点符号,通过前面的算例,读者可能已对标点符号的作用有所体会。在此要强调指出,标点在matlab中的地位极其重要。为此,把各标点的作用归纳成表1.4-2,表1.4-2 matlab常用标点的功能,空格:数组元素分隔符。 例:1.3.7,1.3.8 逗号:,用作要显示计算结果的指令与其后指令之间的分隔(例:1.3.9中(3)Am1,Aa1)(此处与无符号作用一致,例,1.3.9中(4)1.3.4中(2);用作输入量与输出量之间的分

41、隔符;用作数组元素的分隔符(例1.3.7, 1.3.8 1.3.9, 1.3,11 )。,黑点:. 数值表示中.用作小数点;用于运算符号前,构成“数组”运算符(例1.3.10)。 分号:;用于指令的“结尾”,抑制计算结果的显示(与逗号无符号相对应,);用作不显示计算结果指令与其后指令的分隔;用作数组的行间分隔符(例1.3.9,1.3.11),冒号:用以生成一维数组(例1.3.10);用作单下标援引时,表示全部元素构成的长列;用作多下标援引时,表示那维上的全部元素。 注释符:% 由它“启首”的所有物理行部分被看作非执行的注释(例1.3.9),单引号对:字符串计数符 花括号:胞元数组计数符;图形中

42、被控特殊字符括号,方括号: 输入数组时用;函数指令输出宗量列表时用。 逗号:,用作要显示计算结果的指令与其后指令之间的分隔;用作输入量与输出量之间的分隔符;用作数组元素的分隔符。,空格:用作输入量与输出量之间的分隔符;数组元素分隔符。 逗号:,用作要显示计算结果的指令与其后指令之间的分隔;用作输入量与输出量之间的分隔符;用作数组元素的分隔符。,下连符:_可用作一个变量、函数或文件名中的连字符,以提高可读性;图形中被控下脚标签导符。 续行号 :由三个以上连续黑点构成,吧其下的物理行看作该行的“逻辑”继续,以构成一个“较长”的完整指令。 “At”号:放在函数名前,形成句柄;匿名函数前导符;放在目录

43、名前,形成“用户对象”类目录。,1.4.3 指令窗的常用控制指令,表1.4-3 常见的通用操作指令,说明:clear清除内存变量的操作,可以等价地在“工作空间浏览器”交互界面中实现。 edit指令的等价操作是:选择Matlab操作桌面或指令窗的下拉菜单项(File:New:M-file),或单击工作条上的图标,1.4.4指令窗中指令行的编辑,表1.4-4 MATLAB 指令窗中实施指令行编辑的常用操作键,1.4.1指令行操作过程示例,(1)若用户想计算 的值,那么用户应依次键入以下字符: Y1=2*sin(0.3*pi)/(1+sqrt(5) 按enter键,指令被执行,并给出以下结果: Y1

44、= 0.5000 (3)通过反复按键盘的箭头键,实现指令的回调和编辑,进行新的计算。 但若又想计算 ,用户当然可以像前一个算例那样,通过键盘把字符一个一个键入。但也可以比较方便地用操作键获得该指令,具体办法是:先用【】键调回已输入过得指令Y1=2*sin(0.3*pi)/(1+sqrt(5) ;然后移动光标,把y1改成y2;把sin 改成cos;再按enter键,就可以得到结果。即 Y1=2*sin(0.3*pi)/(1+sqrt(5) Y2=0.3633,Command Window几个小技巧,Matlab 的命令记忆功能:上下箭头键,用 Esc 键 删除命令行,可以先输入命令的前几个字符,

45、再按上下键缩小搜索范围,1.5 历史窗口,历史窗口: 首先记录每次启动时间 并记录在命令窗口输入命令,此次运行期间,输入的所有命令被记录为一组,并以此次启动时间为标志。 使用历史窗口: 可以查看命令窗口输入过的命令或语句 可以选择一条或多条命令执行拷贝、执行、创建M文件等。,要清除历史记录,可以选择Edit菜单中的Clear Command History 命令,表1.5-1 历史指令窗主要应用功能的操作方法,【图1.5-1】演示如何再运行算例中的全部绘图指令。,1.6 Current Directory、路径设置器和文件管理,当前目录窗口:指Matlab运行时的工作目录。 只有在当前目录和搜

46、索路径下的文件、函数才可以被运行和调用。 如果没有特殊指明,数据文件也将存放在当前目录下; 用户可以将自己的工作目录设置成当前目录,从而使得所有操作都在当前目录中进行。,1.6.3 Matlab的搜索路径,当用户从指令窗送入一个名为cont的指令后,Matlab的基本搜索过程大致如下。 检查Matlab内存,看cont是不是变量;假如不是变量,则进行下一步。 检查cont是不是内建函数(build-in Function);假如不是,再往下执行。 在当前目录上,检查是否有名为cont的M文件存在;假如不是,再往下执行。 在Matlab搜索路径的其他目录中,检查是否有名为cont的M文件存在。,

47、搜索路径:指Matlab执行过程中对变量、函数和文件进行搜索的路径。 在File菜单中选择Set Path命令或在命令窗口输入pathtool命令,出现搜索路径设置对话框:,1.6.4 Matlab搜索路径的扩展,七. 路径和文件名,使用如下窗口设置路径:,修改完搜索路径后,需要进行保存 !,1.7工作空间浏览器和变量编辑器,图1.7-1 工作空间浏览器及“绘图工具”图标的展开,【例1.7-1】通过“工作空间浏览器”的运行,采用图形显示内存变量t和y之间的关系图形。(注意:本例是在例1.3-10运行后进行的,因此内存中保存着由例1.3-10产生的全部变量。),1、绘图变量的选定 在“工作空间浏

48、览器”中,用鼠标点亮所需图示的变量y和t. 2、选定绘图的类型 点击绘图类型菜单引出键,引出绘图类型菜单。加入需要绘制“填色面图”,则用鼠标点中“填色面图”栏(参见图1.7-1)即可。 3、绘图变量位置的交换 由于在选择变量时,先选的y后选的t,所以在绘图指令显示出area(y,t).显然,指令area的两个输入量位置不正确。为纠正这种错误,用鼠标点击输入量位置交换键,参见图1.7-1. 4、图形的绘制 经过以上的操作后,再双击“填色面图”菜单,就绘制出如图1.7-2所示的图形。,图 1.7-2 数组(t, y) 表示的曲线,1.7.2 工作空间,查看工作空间内存变量,可以由who、whos 。 命名新变量。 修改变量名 删除变量,用clear 绘图 保存变量数据,save 装入数据,用load,Workspace是什么?,当我们在matlab软件中执行程序,或者命令行模式下输入命令执行,执行的结果都被放置到一个叫Workspace的空间里,应该理解为一段专门的内存把以前执行的结果都存放起来,这样后续的输入指令,程序都可以用前面的结果。 这是matl

温馨提示

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

评论

0/150

提交评论