电子书_MATLAB程序设计与应用(第二版).doc
《电子书_MATLAB程序设计与应用(第二版).doc》由会员分享,可在线阅读,更多相关《电子书_MATLAB程序设计与应用(第二版).doc(387页珍藏版)》请在咨信网上搜索。
阅读时:请选择“视图 | 文档结构图”,弹出文档中的标题链接。 数学软件 MATLAB 程序设计与应用 第1章 MATLAB系统环境 1.1 MATLAB概貌 1.2 MATLAB环境的准备 1.3 MATLAB操作界面 1.4 MATLAB帮助系统 自上世纪80年代以来,出现了科学计算语言,亦称数学软件。 MATLAB Mathematica Mathcad Maple LINDO LINGO 1.1 MATLAB概貌 p3 MATLAB 是 MATrix LABoratory(矩阵实验室) 的缩写。 1984年由 Math Works 公司推出,现已成为国际公认的优秀的工程应用开发环境,是影响最大,流行最广的科学计算语言。 1.1.1 MATLAB的发展 版本编号 建造编号 发布时间 版本编号 建造编号 发布时间 MATLAB 1.0 1984 MATLAB 6.5.1 R13SP1 2003 MATALB 2 1986 MATLAB 6.5.2 R13SP2 2003 MATLAB 3 1987 MATLAB 7.0 R14 2004 MATLAB 3.5 1990 MATLAB 7.0.1 R14SP1 2004 MATLAB 4 1992 MATLAB 7.0.4 R14SP2 2005 MATLAB 4.2c R7 1994 MATLAB 7.1 R14SP3 2005 MATLAB 5.0 R8 1996 MATLAB 7.2 R2006a 2006 MATLAB 5.1 R9 1997 MATLAB 7.3 R2006b 2006 MATLAB 5.1.1 R9.1 1997 MATLAB 7.4 R2007a 2007 MATLAB 5.2 R10 1998 MATLAB 7.5 R2007b 2007.10 MATLAB 5.2.1 R10.1 1998 MATLAB 7.6 R2008a 2008.3 MATLAB 5.3 R11 1999 MATLAB 7.7 R2008b 2008.10 MATLAB 5.3.1 R11.1 1999 MATLAB 7.8 R2009a 2009.3 MATLAB 6.0 R12 2000 MATLAB 7.9 R2009b 2009.10 MATLAB 6.1 R12.1 2001 MATLAB 7.10 R2010a 2010.3 MATLAB 6.5 R13 2002 MATLAB 7.11 R2010b 2010.10 1. 从MATLAB 4.2c开始,每个版本增加了一个建造编号; 2. 例如MATLAB7.6的建造编号是R2008a。说明MATLAB7.6与MATLAB2008a是等同的; 3. 对于建造编号,正规化以后,每年出两个版本。一般来说。a是测试版,b是正式版。a是前半年出,b是后半年出。 教材采用MATLAB7.0(R14,2004) 实验室采用MATLAB 7.8(R2009a,2009.3,汉化) 1.1.2 MATLAB的主要功能 p4 u 数值计算和符号计算功能 u 绘图功能 u 语言体系 u MATLAB工具箱 (1) 数值计算和符号计算功能 MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。 MATLAB先后和著名的符号计算语言Maple与MuPAD(从MATLAB 2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。 (2) 绘图功能 可以绘制二维和三维图形。 MATLAB提供了两个层次的绘图操作: l 对图形句柄进行的低层绘图操作; l 建立在低层绘图操作之上的高层绘图操作。 (3) 语言体系 MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。 MATLAB是解释性语言,不能脱离MATLAB环境而独立运行。 (4) MATLAB工具箱 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。 基本部分 构成MATLAB的核心内容,也是使用和构造工具箱的基础。 功能性工具箱 主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。 学科性工具箱 Control System Toolbox 控制系统工具箱 Signal Processing Toolbox 信号处理工具箱 Neural Network Toolbox 神经网络工具箱 Optimization Toolbox 最优化工具箱 Financial Toolbox 金融工具箱 Statistics Toolbox 统计学工具箱 开始→工具箱 MATLAB具备很强的开放性 除内部函数外,所有MATLAB基本文件和各工具箱文件都是可读、可改的源文件,用户可通过对源文件的修改或加入自己编写的文件去构成新的专用工具箱。 1.1.3 MATLAB功能演示 p5 例1.1 绘曲线图 绘制函数y=2-|x|和y=sin x的曲线。 在命令窗口逐条输入以下命令: x=-2*pi:pi/180:2*pi; plot(x,2.^(-abs(x)),':',x,sin(x)); 例1.2 求方程的根 求方程2x5-3x3+71x2-9x+13=0的全部根。 p=[2,0,-3,71,-9,13]; x=roots(p) 例1.3 解线性方程组 法1:调用求逆矩阵函数inv a=[2,3,-1;8,2,3;45,3,9]; %系数矩阵 b=[2;4;23]; %常数项列向量 x=inv(a)*b 法2:左除运算 a=[2,3,-1;8,2,3;45,3,9]; %系数矩阵 b=[2;4;23]; %常数项列向量 x=a\b 法3:符号计算 syms x y z [x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23) 例1.4 求积分 法1:调用quad quad('x.*log(1+x)',0,1) 法2:符号计算 syms x int(x*log(1+x),0,1) 1.2 MATLAB环境的准备 p7 1.2.1 MATLAB的安装 安装MATLAB系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。 1.2.2 MATLAB的启动与退出 p8 启动有3种常见方法: (1) 使用Windows“开始”菜单。 (2) 运行MATLAB(文件夹)系统启动程序matlab.exe。 (3) 利用(桌面)快捷方式。 退出也有3种常见方法: (1) 在主窗口File菜单中选择Exit MATLAB。 (2) 在命令窗口中键入Exit或Quit命令。 (3) 单击主窗口右上角的关闭按钮。 1.3 MATLAB操作界面 p9 1.3.1 主窗口 MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。 • MATLAB的菜单栏 包括6个菜单项: File 实现有关文件的操作 Edit 用于命令窗口的编辑操作 Debug 用于程序调试 Desktop 用于设置MATLAB集成环境的显示方式(桌面) Window 用于关闭所有打开的编辑器窗口或选择活动窗口 Help 用于提供帮助信息。 • MATLAB的工具栏 提供了一些命令按钮和一个当前路径列表框。这些命令按钮有对应的菜单命令,但比菜单命令使用起来更快捷、方便。 1.3.2 命令窗口(Command Window) 命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。 >> 为命令提示符 表示MATLAB正在处于准备状态。 在命令提示符后键入命令并回车后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。 该窗口既可以内嵌在工作界面内,也可以浮动到工作界面之外。(右上角的按钮) 一般来说,一个命令行输入一条命令,命令行以回车结束。 但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。 例 p=15, m=35 p=15; m=35 ... 为续行符 如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上续行符并按下回车键,然后接着下一个物理行继续写命令的其他部分。 即把续行符下面的物理行看作该行的逻辑继续。 表1.1 命令行编辑中常用的控制及其功能 p10 键名 功能 ↑ ↓ ← → PgUp PgDn Home End Del BackSpace Esc 前寻式调回已输入过的命令 后寻式调回已输入过的命令 左移光标 右移光标 前寻式翻滚一页 后寻式翻滚一页 光标移到行首 光标移到行尾 删除光标右边字符(删除键) 删除光标左边字符(返消键) 删除当前行(取消键) 1.3.3 工作空间窗口(Workspace) p10 工作空间是MATLAB用于存储各种变量和结果的内存空间。 在该窗口中显示工作空间中所有的变量,可对变量进行观察、编辑、保存和删除。 1.3.4 当前目录窗口和搜索路径(Cuurent Directory) p11 当前目录 是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。 在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。 cd命令:将用户目录设置成当前目录。 例 将用户目录e:\matlab7\work设置为当前目录。 在命令窗口输入: cd e:\matlab7\work MATLAB的搜索路径 当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。 基本的搜索过程是: (1) 检查该命令是不是一个变量。 (2) 检查该命令是不是一个内部函数。 (3) 检查该命令是否当前目录下的M文件。 (4) 检查该命令是否MATLAB搜索路径中其他目录下的M文件。 用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。 设置搜索路径的方法有: (1) 用path命令设置搜索路径。 例 将用户目录e:\matlab7\work加到搜索路径下。 在命令窗口输入: path(path 'e:\matlab7\work') (2) 用对话框设置搜索路径 文件→设置路径(或在命令窗口执行pathtool命令) 将出现搜索路径设置对话框。 通过“添加文件夹”或添加包含子文件夹“按钮将指定路径添加到搜索路径列表中。 在修改完搜索路径后,则需要保存搜索路径。 pathdef.m 保存搜索路径的信息,通过修改该文件也可以修改搜索路径。 1.3.5 命令历史窗口(Command History) 在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。 通过双击命令可以再次运行历史命令。 要清除这些历史记录,可选择编辑菜单中的Clear Command History命令。 1.3.6 Start菜单 p13 在MATLAB主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以快速访问MATLAB的各种工具和查阅MATLAB包含的各种资源。 1.4 MATLAB帮助系统 p13 1.4.1 帮助命令 p14 MATLAB帮助命令包括help、lookfor以及模糊查询。 1.help命令 在命令窗口中直接输入: l help显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。 l help加函数名 显示该函数的帮助说明。 2.lookfor命令 help命令只搜索出那些关键字完全匹配的结果。 lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。(列出的内容很长,可用Ctrl+C终止) 3.模糊查询 用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。 1.4.2 帮助窗口 p15 进入帮助窗口可通过3种方法: (1) 单击MATLAB主窗口工具栏中的按钮。 (2) 在命令窗口中输入helpwin、helpdesk或doc。 (3) 选择Help菜单中MATLAB Help命令。 1.4.3 演示系统 l 在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块。 l 在命令窗口输入Demos。 l 选择主窗口Help菜单中的Demos子菜单,打开演示系统。 第2章 MATLAB数据及其运算 2.1 MATLAB数据的特点 2.2 变量及其操作 2.3 MATLAB矩阵的表示 2.4 MATLAB数据的运算 2.5 字符串 2.6 结构数据和单元数据 2.1 MATLAB数据的特点 p17 矩阵 矩阵是MATLAB最基本、最重要的数据对象。 MATLAB的大部分运算或命令都是在矩阵(在复数域上)运算的意义下执行的。 标量对应仅含一个元素的矩阵。 数值数据 双精度数,占64位,转换函数double 单精度数,占32位,转换函数single 带符号整数,转换函数int8,int16,int32 无符号整数,转换函数uint8,uint16,uint32 字符数据,转换函数char 结构体类型(Structure) 单元类型(Cell) 逻辑型,非0为true,0为false 2.2 变量及其操作 2.2.1 变量与赋值 1.变量命名 变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。 变量名区分字母的大小写。 MATLAB提供的标准函数名以及命令名必须用小写字母。 2.赋值语句 (1) 变量=表达式 (2) 表达式(值赋给预定义变量ans) 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。 例2.1 计算表达式的值 p18 将的计算结果赋给变量x,然后显示出结果。 x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) 其中pi和i都是MATLAB预先定义的变量,分别代表圆周率π和虚数单位。 3. 预定义变量 p18 表2.1 常用的预定义变量及其含义 预定义变量 含义 ans eps pi i,j inf,Inf NaN,nan nargin nargout realmax realmin lasterr lastwar 默认赋值变量 机器零阈值 π近似值 虚数单位 无穷大,如1/0的结果 非数,如0/0,inf/inf的结果 函数输入参数个数 函数输出参数个数 最大正实数 最小正实数 存放最新的错误信息 存放最新的警告信息 预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。 i=2 %对预定义变量重新赋值 2*i clear i %恢复预定义变量 2*i 2.2.2 变量的管理 p19 1.内存变量的显示与删除 显示工作空间中驻留的变量名清单及信息命令: who %显示变量名清单 whos %显示变量名清单及信息 删除工作空间中的变量命令:clear 变量名 工作空间窗口专门用于内存变量的管理。 在工作空间窗口中显示所有内存变量的属性。 l 当选中某些变量([Ctrl或Shift]+单击)后,再单击Delete按钮,就能删除这些变量。 l 双击变量后,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。 l 输入较大矩阵时,可采用变量编辑器。 2.内存变量文件 利用MAT文件可以把当前工作空间中的一些有用变量长久地保留下来,扩展名是.mat。 MAT文件的生成和装入由save和load命令来完成。 常用格式为: save 文件名[变量名表] [-append][-ascii] load 文件名[变量名表] [-ascii] l 文件名可以带路径,但不需带扩展名.mat,命令默认对.mat文件进行操作。 l 变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。 l -ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。 l -append选项控制将变量追加到MAT文件中。 2.2.3 数据的输出格式 p20 用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。 在一般情况下,内部每一个数据元素都是用双精度数来表示和存储的。 数据输出时可用format命令设置或改变数据输出格式。 format命令的格式为: format 格式符 其中格式符决定数据的输出格式 表2.2 控制数据输出格式格式符及其含义 格式符 含义 short(默认) 小数点后4位,不超过7位有效数字。 大于1000的实数用5位有效数字的科学记数法 long 15位有效数字 short e 5位有效数字科学记数法 long e 15位有效数字科学记数法 short g 从short和short e选择最佳方式 long g 从long和long e选择最佳方式 rat 近似有理数表示 hex 十六进制表示 + 正数、负数、零分别用+、-、空格表示 bank 银行格式,元、角、分表示 compact 输出变量之间无空行 loose 输出变量之间有空行 例 4/3 %当前输出格式 format long %15位有效数字形式输出 4/3 format rat %近似有理数表示 4/3 format compact %输出变量之间没有空行 4/3 format loose %输出变量之间有空行 4/3 format short %short为默认输出格式 2.3 矩阵的表示 p21 表 矩阵操作函数及其含义 函数名 含义 eye ones linspace sub2ind ind2sub size length reshape end [ ] 单位矩阵 全1矩阵 生成行向量 下标转换成序号 序号转换成下标 给出矩阵的行数和列数 给出矩阵行数和列数中较大者 矩阵重排 预定义变量,某一维末尾下标 空矩阵 2.3.1 矩阵的建立 1. 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下: 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。(可用回车代替分号) 例 A=[1,2,3;4 5 6;7,8 9] 2. 利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。 例2.2 利用M文件建立矩阵 (1) 启动MATLAB文本编辑器,输入: MYMAT=[101,102,103,104,105; 201,202,203,204,205; 301,302,303,304,305] (2) 存盘(文件名为mymatrix.m)。 (3) 在命令窗口中输入mymatrix,即运行该M文件,就建立一个名为MYMAT的矩阵。 3. 建立大矩阵(矩阵拼接) 大矩阵可由方括号中的小矩阵或向量建立。 A=[1,2,3;4,5,6;7,8,9]; C=[A,eye(3),ones(3),A] eye(3) 为3阶单位矩阵 ones(3) 为3阶全1矩阵 2.3.2 冒号表达式 用冒号表达式产生行向量,一般格式: e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。 用linspace函数产生行向量。调用格式: linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2.3.3 矩阵的拆分 1.矩阵元素 通过下标引用矩阵的元素,例如 A=[1,2,3;4,5,6] A(2,3) A(2,2)=22; A A(4,5)=10; A 采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。 A=[1,2,3;4,5,6]; A(3) 序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得 clc A=ones(3,4) size(A) %给出矩阵的行数和列数 sub2ind(size(A),1,2) [i,j]=ind2sub(size(A),3) length(A) %给出矩阵行数和列数中较大者 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵重新排成m×n矩阵。 x=[1,2,3,4,5,6,7,8,9,10,11,12] y=reshape(x,3,4) z=reshape(y,2,7) %出错 2. 矩阵拆分 (1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素; A(i,:)表示A矩阵第i行的全部元素; A(i,j)表示取A矩阵第i行、第j列的元素; A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素; A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素; A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素; A(:)将矩阵A每一列元素堆叠起来,成为一个列向量。 end表示某一维的末尾元素下标。 A(end,:) A(:,end) (2) 利用空矩阵删除矩阵的元素 给变量X赋空矩阵的语句: X=[ ] 注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。 2.4 MATLAB数据的运算 p26 2.4.1 算术运算 1.基本算术运算 MATLAB的基本算术运算有: + 加 - 减 * 乘 / 右除 \ 左除 ^ 乘方 注意,运算是在矩阵意义下进行的。 (1) 矩阵加减运算 假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。 运算规则是: l 若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。 l 若A与B的维数不相同,将给出错误信息,提示用户两个矩阵的维数不匹配。 (2) 矩阵乘法 若A为m×n矩阵,B为n×p矩阵,则 C=A*B 为m×p矩阵。 (3) 矩阵除法 有两种矩阵除法运算: \ 左除 / 右除 如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。 A\B等效于inv(A)*B B/A等效于B*inv(A) 对于含有标量的运算,两种除法运算的结果相同。 如 3/4和4\3有相同的值,都等于0.75。 又如 设a=[10.5,25],则a/5=5\a=[2.1000 5.0000]。 对于矩阵运算,一般A\B≠B/A。 (4) 矩阵的乘方 一个矩阵的乘方运算可以表示成 A^x 要求A为方阵,x为标量。 2.点运算 有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。 点运算符有 .* 点乘 ./ 点右除 .\ 点左除 .^ 点乘方 两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。 3. MATLAB常用数学函数 p29 l 函数的自变量规定为矩阵变量。 l 运算法则是将函数逐项作用于矩阵的元素上。 l 结果是一个与自变量同维数的矩阵。 表2.3 常用数学函数及其含义 p29 函数名 含义 三角函数 sqrt log log10 log2 exp pow2 abs angle real imag conj rem mod fix floor ceil round sign gcd lcm 略 平方根函数 自然对数函数 常用对数函数 以2为底的对数函数 自然指数函数 2的幂 绝对值函数 复数的幅角 复数的实部 复数的虚部 复数共轭运算 求余数或模运算 模运算 向零方向取整 不大于自变量的最大整数 不小于自变量的最小整数 四舍五入到最邻近的整数 符号函数 最大公因子 最小公倍数 函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。 abs(-10) abs(2+3i) abs('abc') (3) 用于取整的函数有 fix 向0方向取整 floor 向-∞方向取整 ceil 向+∞方向取整 round 四舍五入到最邻近的整数 (4) rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。 rem 求余数或模运算 mod 模运算 l 当y≠0时 rem(x,y)=x-y.*fix(x./y) mod(x,y)=x-y.*floor(x./y) l 当y=0时 rem(x,0)=NaN(非数) mod(x,0)=x 2.4.2 关系运算 p30 6种关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 ~= 不等于 运算法则: (1) 两个标量的比较 若关系成立,结果为1,否则为0。 (2) 两个同维数矩阵的比较 对相同位置的元素比较。 (3) 标量与矩阵的比较 标量与矩阵的每一个元素比较。 例2.3 建立5阶方阵,判断A的元素是否能被3整除。 A=[24,35,13,22,63;23,39,47,80,80;... 90,41,80,29,10;45,57,85,62,21;... 37,19,31,88,76] P=rem(A,3)==0 %判断元素是否被3整除 2.4.3 逻辑运算 p31 逻辑运算符: & 与 | 或 ~ 非 运算法则: (1) 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 (2) a和b是两个标量 l a&b a,b全为非零时,结果为1,否则为0。 l a|b a,b中只要有一个非零,结果为1,否则为0。 l ~a 当a是零时,结果为1;当a非零时,结果为0。 (3) 两个运算量是同维矩阵 相同位置上的元素按标量规则逐个进行。 (4) 一个是标量,另一个是矩阵 标量与矩阵中的每个元素之间按标量规则逐个进行。 (5) 逻辑非是单目运算符,也服从矩阵运算规则。 (6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。 例2.4 在[0, 3π]区间,求y=sinx的值。 要求: ① 消去负半波,即(π, 2π)内的函数值置0。 ② 和内取均值为。 %方法1 x=0:pi/100:3*pi; y=sin(x); y1=(x<pi | x>2*pi).*y; %①消去负半波 q= (x>pi/3 & x<2*pi/3) | ... (x>7*pi/3 & x<8*pi/3); qn=~q; y2=q*sin(pi/3)+qn.*y1; %处理② plot(x,[y;y1;y2]); %方法2 x=0:pi/100:3*pi; y=sin(x); y1=(y>=0).*y; %①消去负半波 p=sin(pi/3); y2=(y>=p)*p+(y<p).*y1; %处理② plot(x,[y;y1;y2]); 表2.4 关系逻辑运算函数及其含义 p32 函数名 含义 all any exist find isempty isglobal isinf isnan isfinite issparse isstr xor 向量的所有元素非0,结果为1 向量中任何一个非0,结果为1 变量在工作空间,结果为1 找出矩阵中非0元素的位置 变量是空矩阵,结果为1 变量是全局变量,结果为1 元素是±∞,对应位置取1 元素不是一个数,对应位置取1 元素值有限,对应位置取1 变量是稀疏矩阵,结果为1 变量是字符串,结果为1 两矩阵对应元素同为0或非0,对应位置取0 例2.5 建立矩阵A,然后找出在[10,20]区间的元素的位置。 A=[4,15,-45,10,6;56,0,17,-45,0] find(A>=10 & A<=20) 2.5 字符串 p33 字符串是用单撇号括起来的字符序列。 将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。 可以建立多行字符串矩阵。 字符串是以ASCII码形式存储的。 abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。 相反,char函数可以把ASCII码矩阵转换为字符串矩阵。 例2.6 建立一个字符串向量,然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。 clc; ch='ABc123d4e56Fg9' ; subch=ch(1:5) %取子字符串 revch=ch(end:-1:1) %将字符串倒排 k=find(ch>='a' & ch<='z') %找小写字母的位置 ch(k)= 'A'+(ch(k)-'a') %小写字母变成大写 ch char(ch) %ASCII码矩阵转换为字符矩阵 length(k) %统计小写字母的个数 char([0:29;30:59;60:89;90:119;120:149]) 函数eval,其调用格式为: eval(t) 其中t为字符串。 作用:把字符串的内容作为对应的MATLAB语句来执行。 表2.5 字符串处理函数及其含义 函数名 含义 setstr char mat2str num2str int2str str2num strcat strcmp abs 将ASCII码值转换成字符 同上,将代替setstr 将矩阵转换成字符串 将数值转换成字符串 将整数转换成字符串 将字符串转换成数值 用于字符串的连接 用于字符串的比较 将字符转换成ASCII码 (1) 若字符串中含有单撇号,则该撇号用两个单撇号表示。 (2) 某些情况下用字符串向量表示,即用[ ]括起来。 disp('I''m a teacher.') f=70; c=(f-32)/1.8; disp(['Room temperature is ',... num2str(c),'degrees C.']) 2.6 结构数据和单元数据 p34 2.6.1 结构数据 1.结构矩阵的建立与引用 结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。 建立一个结构矩阵可采用给结构成员赋值的办法。 格式为: 结构矩阵名.成员名=表达式 其中表达式应理解为矩阵表达式。 例 建立含有3个元素的结构矩阵 a(1).x1=10; a(1).x2='liu'; a(1).x3=[11,21;34,78]; a(2).x1=12; a(2).x2='wang'; a(2).x3=[34,191;27,578]; a(3).x1=14; a(3).x2='cai'; a(3).x3=[13,890;67,231]; a(2).x3 %引用矩阵元素a(2)的成员x3 a(2) %引用矩阵元素a(2) a %引用结构矩阵a 2.结构成员的修改 p35 可以根据需要增加或删除结构的成员。 给a中任意一个元素增加成员x4: a(1).x4='410075'; 但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。 用rmfield函数删除结构的成员。 a=rmfield(a,'x4'); 3.关于结构的函数 表2.6 结构的函数及其含义 p36 函数名 含义 struct getfield rmfield isstruct fieldnames setfield isfield 建立或转换为结构矩阵 获取结构成员的内容 删除结构成员 是结构时,值为真 获取结构成员名 设定结构成员的内容 成员在结构中时,值为真 2.6.2 单元数据 p36 单元矩阵的各个元素是不同类型的数据,用带有大括号下标的形式引用单元矩阵元素。 1.单元矩阵的建立与引用 建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。 例 建立单元矩阵。 b={10,'liu', [11,21;34,78];... 12,'wang',[34,191;27,578];... 14,'cai',[13,890;67,231]}; b b{3,3} b{3,3}=10; b{3,3} b b(4) %第4个元素 b{4} 2.关于单元的函数 表2.7 单元的函数及其含义 p37 函数名 含义 celldisp num2cell cell2struct iscell cellplot deal struct2cell 显示单元矩阵内容 把数字矩阵转换为单元矩阵 把单元矩阵转换为结构矩阵 是单元矩阵时,值为真 显示单元矩阵的图形描述 把输入分配给输出 把结构矩阵转换为单元矩阵 第3章 MATLAB矩阵分析与处理 3.1 特殊矩阵 3.2 矩阵结构变换 3.3 矩阵求逆与线性方程组求解 3.4 矩阵求值 3.5 矩阵的特征值与特征向量 3.6 矩阵的超越函数 3.1 特殊矩阵 p39 3.1.1 通用的特殊矩阵 表 产生通用特殊矩阵的函数及其含义 p39 函数名 含义 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 例3.1 分别- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子书 _MATLAB 程序设计 应用 第二
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文