Matlab教程经典教程

上传人:沈*** 文档编号:125020450 上传时间:2022-07-26 格式:DOC 页数:216 大小:7.63MB
收藏 版权申诉 举报 下载
Matlab教程经典教程_第1页
第1页 / 共216页
Matlab教程经典教程_第2页
第2页 / 共216页
Matlab教程经典教程_第3页
第3页 / 共216页
资源描述:

《Matlab教程经典教程》由会员分享,可在线阅读,更多相关《Matlab教程经典教程(216页珍藏版)》请在装配图网上搜索。

1、第1章 基础准备及入门 1.1 最 简单的计算器使用法 2为易于学习,本节以算例方式叙述,并通过算例归纳一些 MATLAB 最基本的规则和语法结构。建议读者,在深入学习之前,先读一读本节。 【例 1.3-1】求 12 + 2 (7 - 4) 3 的算术运算结果。本例演示:最初步的指令输入形式和必需的操作步骤。 (1)用键盘在 MATLAB 指令窗中输入以下内容 (12+2*(7-4)/32(2)在上述表达式输入完成后,按 Enter 键,该指令被执行,并显示如下结果。 ans = 2说明 l 本例在指令窗中实际运行的情况参见图 1.3-1。 l 指令行“头首”的“ ”是“指令输入提示符”,它是

2、自动生成的。本书在此后的输入指令前将不再带提示符“ ”。理由是:(A)为使本书简洁;(B)本书用 MATLAB的 M-book 写成,而在 M-book 中运行的指令前是没有提示符的。 5l l l MATLAB 的运算符(如+、- 等)都是各种计算程序中常见的习惯符号。 一条指令输入结束后,必须按 Enter 键,那指令才被执行。 由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给 MATLAB 的一个默认变量“ans”。它是英文“answer”的缩写。 【例 1.3-2】“续行输入”法。本例演示:或由于指令太长,或出于某种需要,输入指令行必须多行书写时,该如何处理。 S=1-1/

3、2+1/3-1/4+ . 1/5-1/6+1/7-1/8S = 0.6345-308 308说明 l MATLAB 用 3 个或 3 个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。 l 本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量 S。 l 指令执行后,变量 S 被保存在 MATLAB 的工作空间(Workspace)中,以备后用。如果用户不用 clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中,直到本 MATLAB 指令窗被关闭为止。 1.3.3 数 值、变量和表达式 前节算例只是表演了“计算器”功能,那仅是 MATLAB 全部功能中小小一角。

4、为深入学习 MATLAB,有必要系统介绍一些基本规定。本节先介绍关于变量的若干规定。 一 数值的记述 MATLAB 的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。 3 -99 0.001 9.456 1.3e-3 4.5e33 在采用 IEEE 浮点算法的计算机上,数值通常采用“占用 64 位内存的双精度”表示。其相对精度是 eps (MATLAB 的一个预定义变量),大约保持有效数字 16 位。数值范围大致从 10 到 10 。 二 变量命名规则 l 变量名、函数名是对字母大小写敏感的。如变量 myvar 和 MyVar 表示两个不同的变量。sin 是 MATLAB 定义的

5、正弦函数名,但 SIN,Sin 等都不是。 l 变量名的第一个字符必须是英文字母,最多可包含 63 个字符(英文、数字和下连符)。l 如 myvar201 是合法的变量名。 变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名 my_var_201 是合法的,且读起来更方便。而 my,var201 由于逗号的分隔,表示的就不是一个变量名。 6三 在MATLAB 默认 的预定义变量 MATLAB 中有一些所谓的预定义变量(Predefined Variable),见表1.3-1。每当MATLAB 启动,这些变量就被产生。这些变量都有特殊含义和用途。建议:用户在编写指令和程序时,应尽可能

6、不对表 1.3-1 所列预定义变量名重新赋值,以免产生混淆。 表 1.3-1 MATLAB 中最常用的预定义变量 预定义变量 ans eps Inf 或 inf i 或 j pi 含 义 计算结果的默认变量名机器零阈值 无穷大,如 1/0 虚单元 i = j = - 1 圆周率 p 预定义变量 NaN 或 nannargin nargout realmax realmin 含 义 不是一个数(Not a Number),如 0/0, / 函数输入宗量数目 函数输出宗量数目 最大正实数 最小正实数 说明 l 假如用户对表中任何一个预定义变量中进行赋值,则那个变量的默认值将被用户新赋的值“临时”覆

7、盖。所谓“临时”是指:假如使用 clear 指令清除 MATLAB 内存中的变量,或 MATLAB 指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值,不管这些预定义变量曾被用户赋过什么值。 l 在遵循 IEEE 算法规则的机器上,被 0 除是允许的。它不会导致程序执行的中断,只是在给出警告信息的同时,用一个特殊名称(如 Inf,NaN)记述。这个特殊名称将在以后的计算中以合理的形式发挥作用。 【例 1.3-3】运用以下指令,以便初步了解预定义变量。本例演示:预定义变量已经存在的事实;若干预定义变量的数量级概念。 format long realmax ans = 1.7976931

8、34862316e+308realminans = 2.225073858507201e-308epsans = 2.220446049250313e-016pians = 3.141592653589797四 运算符和表达式 (1)经典教科书上的算术运算符在 MATLAB 中的表达方式,见表 1.3-2。 表 1.3-2 MATLAB 表达式的基本运算符 数学表达式矩阵运算符数组运算符加a + ba + ba + b减a - ba - ba - b乘a ba * ba .* b除a ba / b 或 b aa ./ b 或 b . a幂aba ba . b圆括号( )( )( )说明 l 因

9、为 MATLAB 面向复数设计,其所有运算定义在复数域上。所以对于方根问题,运算只返还一个“主解”。要得复数的全部方根,必须专门编写程序(见例 1.3-6)。 l 因为 MATLAB 面向矩阵/数组设计,标量被看作 (1 1) 的矩阵/数组。 l 数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。前者的算符比后者多一个“小黑点”。(参见例 1.3-9,例 1.3-10。更详细说明请看第 3 章) l MATLAB 用左斜杠或右斜杠分别表示“左除”或“右除”运算。对标量而言,“左除”和“右除”的作用结果相同。但对矩阵来说,“左除”和“右除”将产生不同的结果。 iq2 2bangle(z) 以弧

10、度为单位给出复数 z 的幅角 arctan 。 (2)MATLAB 书写表达式的规则与“手写算式”几乎完全相同。 l 表达式由变量名、运算符和函数名组成。 l 表达式将按与常规相同的优先级自左至右执行运算。 l 优先级的规定是:指数运算级别最高,乘除运算次之,加减运算级别最低。 l 括号可以改变运算的次序。 l 书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。 五 面向复数设计的运算MATLAB 特点之一 MATLAB 的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不必像其他程序语言那样把实部、虚部分开处理。为描述复数,虚数单位用预定义变量 i 或 j 表示。

11、 复数 z = a + bi = re 直角坐标表示和极坐标表示之间转换的 MATLAB 指令如下。 real(z) 给出复数 z 的实部 a = r cosq 。 imag(z) 给出复数 z 的虚部 b = r sin q 。 abs(z) 给出复数 z 的模 a + b 。 a8【例1.3-4】复数 z1= 3 + 4i, z2= 1+ 2i, z3= 2ep6i表达,及计算 z =z1zz32。本例演示:正确的复数输入法;涉及复数表示方式的基本指令。 (1)经典教科书的直角坐标表示法 z1= 4 + 3i %合法,但建议少用或不用z1 = 4.0000 + 3.0000i说明 l 本书

12、建议读者不要使用这种输入格式。因为这种书写格式,只适用于“数值标量”复数,而不适用于“数值矩阵”。 l 在这种书写格式中,4i 是一个完整的虚数,在 4 和 i 之间不许“空格”存在。 (2)采用运算符构成的直角坐标表示法和极坐标表示法 z2 = 1 + 2 * i %运算符构成的直角坐标表示法 z3=2*exp(i*pi/6) %运算符构成的极坐标表示法 z=z1*z2/z3z2 = 1.0000 + 2.0000i z3 = 1.7321 + 1.0000i z = 1.8840 + 5.2631i(3)复数的实虚部、模和幅角计算 real_z=real(z) image_z=imag(z

13、) magnitude_z=abs(z) angle_z_radian=angle(z)angle_z_degree=angle(z)*180/pireal_z = 1.8840 image_z = 5.2631 magnitude_z = 5.5902 angle_z_radian = 1.2271 angle_z_degree = 70.3048%弧度单位 %度数单位【例 1.3-5】图示复数 z1= 4 + 3i, z2= 1 + 2i 的和(配图 1.3-2)。本例演示:MATLAB 的运9算在复数域上进行;指令后“分号”的作用;复数加法的几何意义;展示 MATLAB 的可视化能力(让

14、读者感受,但不要求理解)。 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,

15、4.5,z2) text(2.5,3.5,z12) xlabel(real) ylabel(image) shgz12 = 5.0000 + 5.0000i 图 1.3-2 两个复数相加 【例 1.3-6】 用 MATLAB 计算3- 8 能得到 2 吗(配图 1.3-3)?本例演示:MATLAB 运10算定义在复数域的实质;指令后“分号”抑制运算结果的显示;MATLAB 的方根运算规则;更复杂指令的表示方式;展现 MATLAB 的图形表现力。(对于本例指令,读者能有体验就可,不必强求理解。) (1)直接计算时,得到处于第一象限的方根。 a=-8; r_a=a(1/3) %求 3 次根r_a

16、= 1.0000 + 1.7321i(2)3- 8 的全部方根计算如下 3% 先构造一个多项式 p(r) = r- a p=1,0,0,-a; %p 是多项式 p(r) 的系数向量 %指令末尾的“英文状态分号”使该指令运行后,不显示结果。 R=roots(p) %求多项式的根 R = -2.00001.0000 + 1.7321i 1.0000 - 1.7321i(3)图形表示 MR=abs(R(1);t=0:pi/20:2*pi; x=MR*sin(t); y=MR*cos(t); %计算复根的模 %产生参变量在 0 到 2*pi 间的一组采样点 plot(x,y,b:),grid on h

17、old on %画一个半径为 R 的圆 %注意“英文状态逗号”在不同位置的作用 plot(R(2),.,MarkerSize,30,Color,r) %画第一象限的方根 plot(R(1,3),o,MarkerSize,15,Color,b)%画另两个方根 axis(-3,3,-3,3),axis square %保证屏幕显示呈真圆 hold off11说明 图 1.3-3 (-8)的全部三次方根分布 l l 本例有助于理解 MATLAB 的计算特点。 对复数进行方根运算时,MATLAB 只给出处于“第一象限”的那个根。 六 面向数组设计的运算MATLAB 特点之二 1 3【例 1.3-7】实

18、数数组 AR = 的“一行”输入法。本例演示:二维数组的最基本、最在 MATLAB 中,标量数据被看作 (1 1) 的数组(Array)数据。所有的数据都被存放在适当大小的数组中。为加快计算速度(运算的向量化处理),MATLAB 对以数组形式存储的数据设计了两种基本运算:一种是所谓的数组运算;另一种是所谓的矩阵运算。在此仅以算例展示 MATLAB 的计算特点,更详细的叙述请见第 3 章。 2 4常用输入法;二维数组输入的三大要素。 (1)在键盘上输入下列内容 AR= 1,3;2,4(2)按 Enter 键,指令被执行。 (3)在指令执行后,MATLAB 指令窗中将显示以下结果: AR = 1

19、3 2 4说明 l 在 MATLAB 中,不必事先对数组维数及大小做任何说明,内存将自动配置。 l 二维数组输入的三大要素:数组标识符“ ”;元素分隔符空格或逗号“,”;数组行间分隔符分号“;”或“回车键”。注意:所有标点符号都是“英文状态的符号”。 12l l MATLAB 对字母大小写是敏感的。比如本例中的数组赋给了变量 AR,而不是 Ar, aR, 或 ar 。 在全部键入一个指令行内容后,必须按下 Enter 键,该指令才会被执行。请读者务必记住此点。出于叙述简明的考虑,本书此后将不再重复提及此操作。 【例 1.3-8】实数数组 AI =AI=5,7 6,8AI = 5 7 6 856

20、78的“分行”输入法。 说明 l 本例采用这种输入法是为了视觉习惯。当然,对于较大的数组也可采用此法。 l 在这种输入方法中,“回车”符用来分隔数组中的行。 【例 1.3-9】对复数数组 A =1- 5i2 - 6i3- 7i4 - 8i进行求实部、虚部、模和幅角的运算。本例演示:复数数组的生成;MATLAB 指令对数组元素“并行操作”的实质。 (1)创建复数数组 AR=1,3;2,4;AI=5,7;6,8; A=AR-AI*i %形成复数矩阵 A = 1.0000 - 5.0000i 3.0000 - 7.0000i 2.0000 - 6.0000i 4.0000 - 8.0000i(2)求

21、复数数组的实部和虚部 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); 13Aa1(m,n)=angle(A(m,n)*180/pi; %以度为单位计算幅角 end end Am1,Aa1Am1 = 5.0990 7.6158 6.3246 8.9443 Aa1 = -78.6901 -66.8014 -71.5651 -63.4349(4)求复数数组中各元素的模和幅角直接法

22、Am2=abs(A) Aa2=angle(A)*180/piAm2 = 5.0990 7.6158 6.3246 8.9443 Aa2 = -78.6901 -66.8014 -71.5651 -63.4349说明 l 函数 real, imag, abs, angle 是同时、并行地作用于数组的每个元素。对 4 个元素运算所需的时间大致与对单个元素所需时间相同。这有利于运算速度的提高。这是“向量化”运算的一种形式。 l 本例给出了循环法求各元素模和幅角的指令。这是很不有效的计算方法。对于 MATLAB以外的许多编程语言来说,可能不得不采用“循环”处理方式来解本例。记住:对于MATLAB 来说

23、,应该尽量摒弃“循环”处理,而采用“向量化”处理方式。 【例 1.3-10】画出衰减振荡曲线 y = e-t3sin 3t , t 的取值范围是0,4p (配图 1.3-4)。本例演示:展示数组运算的优点;展示 MATLAB 的可视化能力。 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)14说明 图 1.3-4 衰减振荡曲线 l l 本例第

24、二条指令中的“.*”符号表示乘法是在两个数组相同位置上的元素间进行的。本书把这种乘法称为“数组乘”。数组乘的引入,不但使得程序简洁自然,而且避免了耗费机时的“循环计算”。关于数组运算的详细叙述请见第 3 章。 本例第二条指令是典型的“向量化”处理形式。本书作者建议读者,只要可能,应尽量采用“向量化”运算形式。 【例1.3-11】复数矩阵 B =3 + 2i2 + 6i的生成,及计算 A B 矩阵乘积(A取自算例5 + 3i4 - 2i1.3-9)。本例演示:MATLAB 矩阵运算指令的简捷性。 B=3+2i,2+6i;5+3*i,4-2*i %复数数组的又一种输入方式 %注意标点符号的作用 C

25、=A*B %矩阵乘法B = 3.0000 + 2.0000i 2.0000 + 6.0000i 5.0000 + 3.0000i 4.0000 - 2.0000i C = 49.0000 -39.0000i 30.0000 -38.0000i 62.0000 -42.0000i 40.0000 -40.0000i说明 l 当数组被赋予“变换”属性时,二维数组就被称为矩阵。只有当两个矩阵的“内维大小相等”时,矩阵乘法才能进行。本例中,矩阵 A 的列数与矩阵 B 的行数相等,所以可以进行 A 乘 B。 l 从表达方式看,“矩阵相乘”的指令格式与“标量相乘”指令格式一样。在其他编程语言中,矩阵乘法不

26、得不依赖“循环”进行。 l MATLAB 之所以能把矩阵运算表达得像标准“线性代数”那样简洁易读、自然流畅,那是由于 MATLAB 的设计者采用了“面向对象”编程技术。 151.4 Command Window操作要旨 前一节借助算例,使读者对 MATLAB 指令窗的使用方法有了一个直观的感受。本节将在上节的基础上对控制指令窗的指令和操作进行较系统的归纳,以便读者更全面地了解MATLAB,更方便地使用 MATLAB。 1.4.1 指 令窗的显示方式 一 默 认的输入显示方式 从 MATLAB7.0 起,指令窗中的字符、数值等采用更为醒目的分类显示: (1) 对于输入指令中的 if, for,

27、end 等控制数据流的 MATLAB 关键词自动地采用蓝色字体显示。 (2) 对于输入指令中的非控制指令、数码,都自动地采用黑色字体显示。 (3) 输入的字符串自动呈现为紫色字体。 二 运 算结果的显示 在指令窗中显示的输出有:指令执行后,数值结果采用黑色字体输出;而运行过程中的警告信息和出错信息用红色字体显示。 运行中,屏幕上最常见到的数字输出结果由 5 位数字构成。这是“双精度”数据的默认输出格式。用户不要误认为,运算结果的精度只有 5 位有效数字。实际上,MATLAB 的数值数据通常占用 64 位(Bit)内存,以 16 位有效数字的“双精度”进行运算和输出。MATLAB为了比较简洁、紧

28、凑地显示数值输出,才默认地采用 format short g 格式显示出 5 位有效数字。用户根据需要,可以在 MATLAB 指令窗中,直接输入相应的指令,或者在菜单弹出框中进行选择,都可获得所需的数值计算结果显示格式。MATLAB 数值计算结果显示格式的类型见表 1.4-1。 表 1.4-1 数据显示格式的控制指令 指 令含 义举 例 说 明formatformat short通常保证小数点后四位有效,最多不超过 7 位;对于大于 1000 的实数,用 5 位有效数字的科学记数形式显示。314.159 被显示为 314.1590;3141.59 被显示为 3.1416e+003format

29、long15 位数字表示3.14159265358979format short e5 位科学记数表示3.1416e+00format long e15 位科学记数表示3.14159265358979e+00format short g从 format short 和 format short e 中自动选择最佳记数方式3.1416format long g从 format long 和 format long e 中自动选择最佳记数方式3.14159265358979format rat近似有理数表示355/113format hex十六进制表示400921fb54442d18format

30、+显示大矩阵用。正数、负数、零 分别用+16+ , - , 空格表示。format bank(金融)元、角、分表示3.14format compact显示变量之间没有空行format loose在显示变量之间有空行说明l format short 显示格式是默认的显示格式 。l 该表中实现的所有格式设置仅在 MATLAB 的当前执行过程中有效。三 显 示方式的永久设置 用户根据需要,可以对指令窗的字体风格、大小、颜色和数值计算结果显示格式进行设置。设置方法是:选中 File:Preferences下拉菜单项,引出一个参数设置对话框;在此弹出对话框的左栏选中“Font & Colors”,对话框

31、的右边就出现相应的选择内容;用户根据需要和对话框提示对数据显示格式,或字体等进行选择;最后,通过点击 OK 键,便完成了设置。注意:该设置立即生效,并且这种设置将被永久保留,即这种设置不因 MATLAB关闭和开启而改变,除非用户进行重新设置。 在此还要指出,对于数值显示格式的设置,也可以直接在指令窗中,通过指令的运作进行。但这样的设置仅对当前的 MATLAB 指令窗起作用,一旦 MATLAB 关闭,这种设置也就随之失效。 1.4.2 指 令行中的标点符号 通过前面算例,读者可能已对标点符号的作用有所体会。在此要强调指出:标点在MATLAB 中的地位极其重要。为此,把各标点的作用归纳成表 1.4

32、-2。 表 1.4-2 MATLAB 常用标点的功能 名 称标 点作 用空格(为机器辨认)用作输入量与输入量之间的分隔符;数组元素分隔符。逗号,用作要显示计算结果的指令与其后指令之间的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号。黑点.数值表示中,用作小数点;用于运算符号前,构成“数组”运算符。分号;用于指令的“结尾”,抑制计算结果的显示;用作不显示计算结果指令与其后指令的分隔;用作数组的行间分隔符。冒号:用以生成一维数值数组;用做单下标援引时,表示全部元素构成的长列;用做多下标援引时,表示那维上的全部元素。注释号%由它“启首”的所有物理行部分被看作非执行的注释单引号对 字符串记

33、述符圆括号( )改变运算次序;在数组援引时用;17函数指令输入宗量列表时用。方括号 输入数组时用;函数指令输出宗量列表时用。花括号 胞元数组记述符;图形中被控特殊字符括号。下连符_(为使人易读)用作一个变量、函数或文件名中的连字符;图形中被控下脚标前导符。续行号.由三个以上连续黑点构成。它把其下的物理行看作该行的“逻辑”继续,以构成一个“较长”的完整指令。“At”号放在函数名前,形成函数句柄;匿名函数前导符;放在目录名前,形成“用户对象”类目录。说明为确保指令正确执行,以上符号一定要在英文状态下输入。因为 MATLAB不能识别含有中文标点的指令。1.4.3 指 令窗的常用控制指令 表 1.4-

34、3 常见的通用操作指令 指令 cd clf clc clear dir edit 含 义 设置当前工作目录。 清除图形窗 清除指令窗中显示内容 清除 MATLAB 工作空间中保存的变量 列出指 定目录下 的文件和 子目录清单 打开 M 文件编辑器 指 令exit quit more return type which 含 义 关闭/退出 MATLAB 关闭/退出 MATLAB 使其后的显示内容分页进行 返回到上层调用程序;结束键盘模式 显示指定 M 文件的内容 指出其后文件所在的目录 说明 l 表 1.4-3 所列的指令是基本的,它们对 MATLAB 各版都适用。 l 尽管随版本的升级,不断增

35、添着列表中指令的“等价”菜单选项操作或工具条图标操作,但这种“等价”仅对“人机交互”过程而言。至于这些指令在 M 文件中的作用仍是不可替代的。 l cd 及 dir 指令的操作响应,可以用 MATLAB 操作桌面上或当前目录浏览器中的“浏览键(Browser)”替代。关于当前目录浏览器的使用,请看第 1.6 节。 l clear 清除内存变量的操作,可以等价地在“工作空间浏览器”交互界面中实现。关于工作空间浏览器的使用,请看第 1.7 节。 l edit 指令的等价操作是:选择 MATLAB 操作桌面或指令窗的下拉菜单项 File:New:M-file ,或点击相应工具条上的 和 图标。关于

36、M 文件编辑器的使用,请看第1.9 节。 1.4.4 指 令窗中指令行的编辑 18为了操作方便,MATLAB 不但允许用户在指令窗中对输入的指令行进行各种编辑和运行,而且允许用户对过去已经输入的指令行进行回调、编辑和重运行。具体的操作方式见表1.4-4。 表 1.4-4 MATLAB 指令窗中实施指令行编辑的常用操作键 键 名作 用键 名作 用前寻式调回已输入过的指令行Home使光标移到当前行的首端后寻式调回已输入过的指令行End使光标移到当前行的尾端在当前行中左移光标Delete删去光标右边的字符在当前行中右移光标Backspace删去光标左边的字符PageUp前寻式翻阅当前窗中的内容Esc

37、清除当前行的全部内容PageDown后寻式翻阅当前窗中的内容说明 l 表 1.4-4 所列的操作对 MATLAB 各版均适用。 l 事实上,MATLAB 把指令窗中输入的所有指令都记录在内存中专门开辟的“指令历史空间(Command History)”中,只要用户对它们不进行专门的删除操作,它们既不会因为用户对指令窗进行“清屏”操作(即运行 clc 指令)而消失,也不会因用户对“工作空间”进行“清除内存变量”(即运行 clear 指令)而消失。 l 指令窗中输入过的所有指令都被显示在“历史指令浏览器”交互界面中,以供随时观察和调用。关于“历史指令浏览器”的使用请看第 1.5 节。 2sin(0

38、.3p )(1)若用户想计算 y =【例 1.4-1】指令行操作过程示例。 1+ 5的值,那么用户应依次键入以下字符 y1=2*sin(0.3*pi)/(1+sqrt(5)(2)按 Enter 键,该指令便被执行,并给出以下结果 y1 = 0.50002cos(0.3p )若又想计算 y = ,用户当然可以像前一个算例那样,通过键盘把相应字(3)通过反复按键盘的箭头键,可实现指令回调和编辑,进行新的计算。 1 + 5符一个一个“敲入”。但也可以较方便地用操作键获得该指令,具体办法是:先用 键调回已输入过的指令 y1=2*sin(0.3*pi)/(1+sqrt(5) ;然后移动光标,把 y1 改

39、成 y2;把 sin 改成 cos ;再按 Enter 键,就可得到结果。即 y2=2*cos(0.3*pi)/(1+sqrt(5)y2 = 0.3633说明 l 可以借助“历史指令窗”进行历史指令的再运行,相关内容请看第 1.5.1 节。 191.5 Command History历史指令窗 MATLAB 所拥有的丰富资源和友善灵活的环境特别适于用来验证一些思想,思考一些问题,和帮助进行创造性思维。用户可以在 MATLAB 环境中,边想边做,做做想想,对随时蹦出的思想“火花”可即刻通过计算加以验证。历史指令窗(Command History)就是为这种应用方式设计的。 1.5.1 Comma

40、nd History历史指令窗简介 历史指令窗记录着:每次开启 MATLAB 的时间,及开启 MATLAB 后在指令窗中运行过的所有指令行。 该窗不但能清楚地显示指令窗中运行过的所有指令行,而且所有这些被记录的指令行都能被复制,或再运行。关于历史指令窗的功能详见表 1.5-1。 表 1.5-1 历史指令窗主要应用功能的操作方法 应 用 功 能操 作 方 法简捷操作方法单行或 多行指 令的复制点亮单行或多行指令;按鼠标右键引出现场菜单;选中Copy菜单项,即可用复合键 Ctrl + V 把它“粘贴”到任何地方(包括指令窗)。单行指令的运行点 亮 单行 指 令 ; 按 鼠标 右 键 引 出 现场

41、菜 单 ; 选 中Evaluate Selection 菜单项,即可在指令窗中运行,并见到相应结果。鼠标 左键 双击单行指令。多行指令的运行点 亮 多行 指 令 ; 按 鼠标 右 键 引 出 现场 菜 单 ; 选 中Evaluate Selection 菜单项,即可在指令窗中运行,并见到相应结果。(详见例 1.5-1)把多行 指令写 成M 文件点 亮 多行 指 令 ; 按 鼠标 右 键 引 出 现场 菜 单 ; 选 中Create M-File 菜单项,就引出书写着这些指令的 M文件编辑调试器;再进行相应操作,即可得所需 M 文件。1.5.2 历 史指令的再运行 历史指令的重新调用,既可以采用

42、第 1.4.4 节所介绍的方法实现,也可以借助历史指令窗进行。在许多场合,后者显得更为方便、直观。 【例 1.5-1】演示如何再运行算例 1.3-10 中的全部绘图指令。 具体操作过程:先利用组合操作 Ctrl + 鼠标左键 点亮如图 1.5-1 所示历史指令窗中的那五行指令;当鼠标光标在点亮区时,点击鼠标右键,引出现场菜单;选中现场菜单项Evaluate Selection ,计算结果就出现在指令窗中。 20说明 图 1.5-1 再运行历史指令的演示 l l 历史指令的复制操作步骤大抵相同。但在现场菜单中,应选 Copy 项。 单行历史指令的再运行操作更简单,只要用鼠标左键双击所需的那行指令

43、即可。 1.6 Current Directory、路径设置器和文件管理 当在指令窗中运行一条指令时,MATLAB 是怎样从庞大的函数和数据库中,找到所需的函数和数据的呢?用户怎样才能保证自己所创建的文件能得到 MATLAB 的良好管理,又怎样能与 MATLAB 原有环境融为一体呢?这就是本节要介绍的内容。 1.6.1 Current Directory当前目录浏览器简介 如图 1.6-1 所示的当前目录浏览器界面上,自上而下分别是:当前目录名,工具条,文件、文件夹列表及文件描述区等。此外,MATLAB 还为当前目录窗设计了一个专门的操作菜单。借助该菜单可方便地打开或运行 M 文件、装载 MA

44、T 文件数据等。详见表 1.6-1。 21图 1.6-1 当前目录浏览器和适配的弹出菜单 表 1.6-1 当前目录适配菜单的应用 应 用 功 能操 作 方 法简捷操作方法运行 M 文件点亮待 运行文 件;按鼠 标右键引 出现场菜 单;选 中Run菜单项,即可使该 M 文件运行。编辑 M 文件点亮待 运行文 件;按鼠 标右键引 出现场菜 单;选 中Open 菜单项,此 M 文件就出现在编辑/调试器中。鼠标 左键 双击M 文件。把 MAT 文件全部数据输入内存点亮待装数据文件;按鼠标右键引出现场菜单;选中Open 菜单项,此文件的数据就全部装入工作内存。鼠标 左键 双击MAT 文件。把 MAT 文

45、件部分数据输入内存点亮待装载数据文件;按鼠标右键引出现场菜单;选中Import Data 菜 单 项 , 引出 数 据 预 览选 择 对 话 框“Import Wizard”;在此框中“勾选”待装数据变量名,点击 Finish 键,就完成操作。说明 l MATLAB 启动后的默认当前目录通常是:MATLABR2006awork。应当指出:在该默认当前目录上存放用户文件是允许的、完全的、可靠的。MathWorks 公司之所以设计这样一个目录,就是供用户使用的。 l 若 MATLAB 的启动由点击 MATLABR2006abinwin32 目录下的 matlab.exe 触发,那么当 前 目 录

46、将 是 MATLAB 所 在 的 根 目 录 。 提 醒 读 者 : 千 万 不 要 把MATLABR2006abinwin32 设成当前目录,也尽量不要把 MATLAB 所在根目录设成当前目录。对此,用户应该通过重新设置,把当前目录设置在适当的目录上。 1.6.2 用 户目录和当前目录设置 (1)建立用户目录 在使用 MATLAB 的过程中,为管理方便,本书作者建议:用户应尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建的应用文件。尽管,matlabwork 允许用户存放文件,用户最好仅把它作为临时工作目录使用。 在 Windows 环境下,创建目录是十分简单的规范操作。因

47、此,本文不再赘述。 (2)应把用户目录设置成当前目录 在 MATLAB 环境中,如果不特别指明存放数据和文件的目录,那么 MATLAB 总默认地将它们存放在当前目录上。因此,出于 MATLAB 运行可靠和用户方便的考虑,本书作者建议:在 MATLAB 开始工作的时候,就应把用户自己的“用户目录”设置成当前目录。 (3)把用户目录设置成当前目录的方法 方法一:交互界面设置法 在 MATLAB 操作桌面右上方,或当前目录浏览器左上方,都有一个当前目录设置区。它包括:“目录设置栏”和“浏览键”。用户或在“设置栏”中直接填写待设置的目录名,或借助“浏览键”和鼠标选择待设置目录。 方法二:指令设置法 通

48、过指令设置当前目录是各种 MATLAB 版本都适用的基本方法。这种指令设置法的适22用范围比交互界面设置法大。它不仅能在指令窗中执行,而且可以使用在 M 文件中。假设待设置的用户目录是 c:mydir ,那么把它设置为当前目录的指令是 cd c:mydir 。 注意:以上方法设置的当前目录,只是在当前开启的 MATLAB 环境中有效。一旦MATLAB 重新启动,以上设置操作必须重新进行。 1.6.3 MATLAB的搜索路径 MATLAB 的所有(M、MAT、MEX)文件都被存放在一组结构严整的目录树上。MATLAB把这些目录按优先次序设计为“搜索路径”上的各个节点。此后,MATLAB 工作时,

49、就沿着此搜索路径,从各目录上寻找所需的文件、函数、数据。 当用户从指令窗送入一个名为 cont 的指令后,MATLAB 的基本搜索过程大抵如下。 l 检查 MATLAB 内存,看 cont 是不是变量;假如不是变量,则进行下一步。 l 检查 cont 是不是内建函数(Built-in Function);假如不是,再往下执行。 l 在当前目录上,检查是否有名为 cont 的 M 文件存在;假如不是,再往下执行。 l 在 MATLAB 搜索路径的其他目录中,检查是否有名为 cont 的 M 文件存在。 应当指出:(A)实际搜索过程远比前面描述的基本过程复杂。但又有一点可以肯定,凡不在搜索路径上的

50、内容,不可能被搜索。(B)指令 exist、 which、 load 执行时,也都遵循搜索路径定义的先后次序。 1.6.4 MATLAB搜索路径的扩展 一 何 时需要修改搜索路径 假如用户有多个目录需要同时与MATLAB交换信息,那么就应把这些目录放置在MATLAB 的搜索路径,使得这些目录上的文件或数据能被调用。又假如其中某个目录需要用来存放运行中产生的文件和数据,那么还应该把这个目录设置为当前目录。 二 利 用设置路径对话框修改搜索路径 采用以下任何一种方法都可以引出设置路径对话框(图 1.6-2)。 l 在指令窗里,运行指令 pathtool。 l 在 MATLAB 桌面、指令窗等的菜单

51、条中,选择 File:Set Path 下拉菜单项。 23说明 图 1.6-2 路径设置对话框 l l 该对话框设置搜索路径有两种修改状态: 当前有效修改 假如在路径设置过程中,仅使用了该对话框的左侧按键。 永久有效修改 假如在设置后,点击了对话框下方 Save 按键。 所谓永久有效修改是指:所进行的修改不因 MATLAB 的关闭而消失。 三 利 用指令path 设置路径 利用 path 指令设置路径的方法对任何版本的 MATLAB 都适用。假设待纳入搜索路径的目录为 c:my_dir ,那么以下任何一条指令均能实现: path(path,c:my_dir)path(c:my_dir,path

52、)把 c:my_dir 设置在搜索路径的尾端 把 c:my_dir 设置在搜索路径的首端 说明 l 用 path 指令扩展的搜索路径仅在当前 MATLAB 环境下有效。也就是说:若用户退出当前 MATLAB 后,再重新启动 MATLAB,那么在前一环境下用 path 所定义的扩展搜索路径无效。 l 用 path 指令扩展的搜索路径的方法可以编写在程序中。 1.7 工作空间浏览器和数组编辑器 1.7.1 Workspace工作空间 浏览器简介 工作空间浏览器(或称内存浏览器)默认地放置于 MATLAB 操作桌面的左上侧后台。点击桌面左上侧框下方外露的“Workspace”窗标,可使工作空间浏览器

53、出现在桌面的前台。该浏览器的功用,详见表 1.7-1。 24图 1.7-1 工作空间浏览器及“绘图工具”图标的展开 表 1.7-1 工作空间浏览器主要功能及其操作方法 功 能操 作 方 法简捷操作法创建新变量点击 图标,在工作空间中生成一个“unnamed”的新变量;双击该新变量图标,引出 Array Editor 数组编辑器(如图 1.7-3);在数组编辑器中,向各元素输入数据;最后,对该变量进行重命名。显示变量内容点 亮变 量 ; 或 点击 图 标 , 或 选中 弹 出 菜单 中 的 OpenSelection 项,则变量内含的数据就显示在“Array Editor”数组编辑器中。(数组编

54、辑器详见第 1.7-3 节)用鼠 标左键双击变量。图示变量点亮变量;或选中图标 下拉菜单项,或选中弹出菜单中的绘图项,就可以适当地绘出选中变量的图形。(详见例 1.7-1)用文件保存变量选择待保存到文件的(一个或多个)变量,或点击图标 ,或选中弹出菜单中的 Save Workspace As项,便可把那些变量保存到 MAT 数据文件。(详见第 1.7-4 节之一)从文件向内存装载变量点击图标 ;选择 MAT 数据文件;再单击那文件,引出“ImportWizard”界面,它展示文件所包含的变量列表;再从列表中,选择待装载变量,便可。【例1.7-1】通过“工作空间浏览器”的运作,采用图形显示内存变量y 。(注意:本例是在例 1.3-10 运行后进行的,因此内存中保存着由例 1.3-

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!