《第二章矩阵及其基本运算PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第二章矩阵及其基本运算PPT讲稿.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章矩阵及其基本运算第1页,共68页,编辑于2022年,星期二一、变量和数据操作一、变量和数据操作1.变量变量 变量命名变量命名在在MATLAB 6.5中,变量名是以字母开头,中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最后接字母、数字或下划线的字符序列,最多多63个字符。个字符。在在MATLAB中,变量名区分中,变量名区分字母的大小写。字母的大小写。第2页,共68页,编辑于2022年,星期二2赋值语句赋值语句(1)变量变量=表达式表达式 (2)表达式表达式其中表达式是用运算符将有关运算量连接其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。起来的式子,其结果是
2、一个矩阵。第3页,共68页,编辑于2022年,星期二例例2-1 计算表达式的值,并显示计算结果。计算表达式的值,并显示计算结果。在在MATLAB命令窗口输入命令:命令窗口输入命令:x=(0:0.1:10000).*pi./360;y1=sin(x);y2=sin(1.05*x);y3=sin(0.1*x);y4=sin(5*x);plot(x,y1+y2);plot(x,y3.*y4);拍现象信号调制第4页,共68页,编辑于2022年,星期二 3.预定义变量预定义变量在在MATLAB工作空间中,还驻留几个由系统工作空间中,还驻留几个由系统本身定义的变量。例如,用本身定义的变量。例如,用pi表示
3、圆周率表示圆周率的近似值,用的近似值,用i,j表示虚数单位。表示虚数单位。预定义变量有特定的含义,在使用时,应预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。尽量避免对这些变量重新赋值。第5页,共68页,编辑于2022年,星期二二、二、MATLAB常用数学函数常用数学函数MATLAB提供了许多数学函数,函数的自提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。果是一个与自变量同维数的矩阵。第6页,共68页,编辑于2022年,星期
4、二函数使用说明:函数使用说明:(1)三角函数以弧度为单位计算。三角函数以弧度为单位计算。(2)abs函数可以求实数的绝对值、复数的模、函数可以求实数的绝对值、复数的模、字符串的字符串的ASCII码值。码值。(3)用于取整的函数有用于取整的函数有fix、floor、ceil、round,要注意它们的区别。,要注意它们的区别。(4)rem与与mod函数的区别。函数的区别。rem(x,y)和和mod(x,y)要求要求x,y必须为相同大小的实矩阵必须为相同大小的实矩阵或为标量。或为标量。第7页,共68页,编辑于2022年,星期二三、矩阵的建立和引用三、矩阵的建立和引用1 矩阵的建立矩阵的建立直接输入法
5、直接输入法 最简单的建立矩阵的方法是从键盘直接最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分或逗号分隔,不同行的元素之间用分号分隔。隔。第8页,共68页,编辑于2022年,星期二利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3其中其中e1为初始值,为初始
6、值,e2为步长,为步长,e3为终止值。为终止值。在在MATLAB中,还可以用中,还可以用linspace函数产生行向量。其函数产生行向量。其调用格式为:调用格式为:linspace(a,b,n)其中其中a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元是元素总数。素总数。显然,显然,linspace(a,b,n)与与a:(b-a)/(n-1):b等价。等价。第9页,共68页,编辑于2022年,星期二2.引用矩阵的元素引用矩阵的元素 通过下标引用矩阵的元素通过下标引用矩阵的元素,例如,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素采用矩阵元素的序号来引用
7、矩阵元素。矩阵元素的序号就是相。矩阵元素的序号就是相应元素在内存中的排列顺序。在应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6;A(3)ans=2显然,序号显然,序号(Index)与下标与下标(Subscript)是一一对应的,以是一一对应的,以mn矩阵矩阵A为例,矩阵元素为例,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。其相互转换关系也可。其相互转换关系也可利用利用sub2ind和和ind2sub函数求得。函数求得。第10页,共68页,编辑于2022
8、年,星期二3矩阵拆分矩阵拆分 (1)利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩阵第矩阵第i行的全行的全部元素;部元素;A(i,j)表示取表示取A矩阵第矩阵第i行、第行、第j列的元素。列的元素。A(i:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元素;行的全部元素;A(:,k:k+m)表示表示取取A矩阵第矩阵第kk+m列的全部元素,列的全部元素,A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第kk+m列中的所有元素。列中的所有元素。此外,还可利用一般
9、向量和此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子运算符来表示矩阵下标,从而获得子矩阵。矩阵。end表示某一维的末尾元素下标。表示某一维的末尾元素下标。第11页,共68页,编辑于2022年,星期二4.特殊矩阵的生成特殊矩阵的生成常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros:产生全:产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全:产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩阵。:产生单位矩阵。rand:产生:产生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。randn:产生均值为:产生均值为0,方差为,方差为1的标准正态的标准正态分布
10、随机矩阵。分布随机矩阵。第12页,共68页,编辑于2022年,星期二例例2-2 分别建立分别建立33、32和与矩阵和与矩阵A同样大小的零矩阵。同样大小的零矩阵。(1)建立一个建立一个33零矩阵。零矩阵。zeros(3)(2)建立一个建立一个32零矩阵。零矩阵。zeros(3,2)(3)设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立一个建立一个与矩阵与矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5 6;%产生一个产生一个23阶矩阵阶矩阵Azeros(size(A)%产生一个与矩阵产生一个与矩阵A同样大小的零矩同样大小的零矩阵阵第13页,共68页,编辑于20
11、22年,星期二例例2-3 建立随机矩阵:建立随机矩阵:(1)在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2)均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随阶正态分布随机矩阵。机矩阵。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)第14页,共68页,编辑于2022年,星期二用于专门学科的特殊矩阵用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于列及两条对角线上的元素和都相等。对于n阶魔方阵,其
12、元素由阶魔方阵,其元素由1,2,3,n2共共n2个整数个整数组成。组成。MATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生成一个,其功能是生成一个n阶魔方阵。阶魔方阵。第15页,共68页,编辑于2022年,星期二例例2-5 将将101125等等25个数填入一个个数填入一个5行行5列的列的表格中,使其每行每列及对角线的和均为表格中,使其每行每列及对角线的和均为565。M=100+magic(5)第16页,共68页,编辑于2022年,星期二(2)帕斯卡矩阵帕斯卡矩阵我们知道,二次项我们知道,二次项(x+y)n展开后的系数随展开后的系数随n的增大组成一个三角形表,称
13、为杨辉三角的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯形。由杨辉三角形表组成的矩阵称为帕斯卡卡(Pascal)矩阵。函数矩阵。函数pascal(n)生成一个生成一个n阶阶帕斯卡矩阵。帕斯卡矩阵。第17页,共68页,编辑于2022年,星期二例例2-7 求求(x+y)5的展开式。的展开式。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:pascal(6)矩阵次对角线上的元素矩阵次对角线上的元素1,5,10,10,5,1即为展即为展开式的系数。开式的系数。第18页,共68页,编辑于2022年,星期二四、四、MATLAB运算运算1.算术运算算术运算 MATLAB的基
14、本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,运算是在矩阵意义下进行的,单个注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。数据的算术运算只是一种特例。第19页,共68页,编辑于2022年,星期二 (1)矩阵加减运算矩阵加减运算 假定有两个矩阵假定有两个矩阵A和和B,则可以由,则可以由A+B和和A-B实现矩阵的加减运算。运算规则是:若实现矩阵的加减运算。运算规则是:若A和和B矩阵的维数相同,则可以执行矩阵的矩阵的维数相同,则可以执行矩阵的加减运算,加减运算,A和和B矩阵的相应元素相加减。矩阵的相应元素相加减。如
15、果如果A与与B的维数不相同,则的维数不相同,则MATLAB将给将给出错误信息,提示用户两个矩阵的维数不出错误信息,提示用户两个矩阵的维数不匹配。匹配。第20页,共68页,编辑于2022年,星期二 (2)矩阵乘法矩阵乘法 假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。第21页,共68页,编辑于2022年,星期二 (3)矩阵除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分别表示左,分别表示左除和右除。如果除和右除。如果A矩阵是非奇异方阵,则矩阵是非奇异方阵,则AB和和B/A运算可运算可
16、以实现。以实现。AB等效于等效于A的逆左乘的逆左乘B矩阵,也就是矩阵,也就是inv(A)*B,而而B/A等效于等效于A矩阵的逆右乘矩阵的逆右乘B矩阵,也就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,如对于含有标量的运算,两种除法运算的结果相同,如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则,则a/5=5a=2.1000 5.0000。对于矩阵来说,左除和右除表示。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般一般ABB
17、/A。第22页,共68页,编辑于2022年,星期二 (4)矩阵的乘方矩阵的乘方 一个矩阵的乘方运算可以表示成一个矩阵的乘方运算可以表示成Ax,要,要求求A为方阵,为方阵,x为标量。为标量。第23页,共68页,编辑于2022年,星期二2点运算点运算 在在MATLAB中,有一种特殊的运算,因中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有所以叫点运算。点运算符有.*、./、.和和.。两矩阵进行点运算是指它们的对应元素进两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。行相关运算,要求两矩阵的维参数相同
18、。第24页,共68页,编辑于2022年,星期二3.关系运算关系运算 MATLAB提供了提供了6种关系运算符:种关系运算符:(小于小于)、(大于大于)、=(大于或等大于或等于于)、=(等于等于)、=(不等于不等于)。它们的含义。它们的含义不难理解,但要注意其书写方法与数学中不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。的不等式符号不尽相同。第25页,共68页,编辑于2022年,星期二 关系运算符的运算法则为:关系运算符的运算法则为:(1)当两个比较量是标量时,直接比较两当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果数的大小。若关系成立,关系表达式结果为为1,否则
19、为,否则为0。(2)当参与比较的量是两个维数相同的矩当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。第26页,共68页,编辑于2022年,星期二 (3)当参与比较的一个是标量,而另一个是当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个
20、比较,并给出元素标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。第27页,共68页,编辑于2022年,星期二 例例2-8 产生产生5阶随机方阵阶随机方阵A,其元素为,其元素为10,90区间的区间的随机整数,然后判断随机整数,然后判断A的元素是否能被的元素是否能被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除。整除。P=rem(A,3)=
21、0其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数矩的余数矩阵。此时,阵。此时,0被扩展为与被扩展为与A同维数的零矩阵,同维数的零矩阵,P是进是进行等于行等于(=)比较的结果矩阵。比较的结果矩阵。第28页,共68页,编辑于2022年,星期二4.逻辑运算逻辑运算 MATLAB提供了提供了3种逻辑运算符:种逻辑运算符:&(与与)、|(或或)和和(非非)。逻辑运算的运算法则为:逻辑运算的运算法则为:(1)在逻辑运算中,确认非零元素为真,用在逻辑运算中,确认非零元素为真,用1表示,零元素为表示,零元素为假,用假,用0表示。表示。(2)设参与逻辑运算的是两个标量设参与逻辑运
22、算的是两个标量a和和b,那么,那么,a&b a,b全为非零时,运算结果为全为非零时,运算结果为1,否则为,否则为0。a|b a,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1。a 当当a是零时,运算结果为是零时,运算结果为1;当;当a非零时,运算结果为非零时,运算结果为0。第29页,共68页,编辑于2022年,星期二 (3)若参与逻辑运算的是两个同维矩阵,那若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由矩阵同维的矩阵,其元素由
23、1或或0组成。组成。(4)若参与逻辑运算的一个是标量,一个是若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由结果是一个与矩阵同维的矩阵,其元素由1或或0组成。组成。第30页,共68页,编辑于2022年,星期二例例2-9 建立矩阵建立矩阵A,然后找出大于,然后找出大于4的元素的的元素的位置。位置。(1)建立矩阵建立矩阵A。A=4,-65,-54,0,6;56,0,67,-45,0(2)找出大于找出大于4的元素的位置。的元素的位置。f
24、ind(A4)第31页,共68页,编辑于2022年,星期二5.矩阵的转置与旋转矩阵的转置与旋转矩阵的转置矩阵的转置转置运算符是单撇号转置运算符是单撇号()。矩阵的旋转矩阵的旋转利用函数利用函数rot90(A,k)将矩阵将矩阵A旋转旋转90的的k倍,倍,当当k为为1时可省略。时可省略。第32页,共68页,编辑于2022年,星期二6矩阵的翻转矩阵的翻转矩阵的左右翻转矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调和最后一列调换,第二列和倒数第二列调换,换,依次类推。,依次类推。MATLAB对矩阵对矩阵A实实施左右翻转的函数是
25、施左右翻转的函数是fliplr(A)。矩阵的上下翻转矩阵的上下翻转MATLAB对矩阵对矩阵A实施上下翻转的函数是实施上下翻转的函数是flipud(A)。第33页,共68页,编辑于2022年,星期二五、字符串五、字符串在在MATLAB中,字符串是用单撇号括起来的中,字符串是用单撇号括起来的字符序列。字符序列。MATLAB将字符串当作一个行向量,每个元将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。相同。也可以建立多行字符串矩阵。第34页,共68页,编辑于2022年,星期二字符串是以字符串是以ASCII码形式存储
26、的。码形式存储的。abs函数可函数可以用来获取字符串矩阵所对应的以用来获取字符串矩阵所对应的ASCII码数码数值矩阵。相反,值矩阵。相反,char函数可以把函数可以把ASCII码矩码矩阵转换为字符串矩阵。阵转换为字符串矩阵。第35页,共68页,编辑于2022年,星期二例例2-13 建立一个字符串向量,然后对该向量建立一个字符串向量,然后对该向量做如下处理:做如下处理:(1)取第取第15个字符组成的子字符串。个字符组成的子字符串。(2)将字符串倒过来重新排列。将字符串倒过来重新排列。(3)将字符串中的小写字母变成相应的大写将字符串中的小写字母变成相应的大写字母,其余字符不变。字母,其余字符不变。
27、(4)统计字符串中小写字母的个数。统计字符串中小写字母的个数。第36页,共68页,编辑于2022年,星期二命令如下:命令如下:ch=ABc123d4e56Fg9;subch=ch(1:5)%取子字符串取子字符串revch=ch(end:-1:1)%将字符串倒排将字符串倒排k=find(ch=a&ch=z);%找小写字母的位置找小写字母的位置ch(k)=ch(k)-(a-A);%将小写字母变成相应的将小写字母变成相应的大写字母大写字母char(ch)length(k)%统计小写字母的个数统计小写字母的个数第37页,共68页,编辑于2022年,星期二六、结构数据和单元数据六、结构数据和单元数据1.
28、结构数据结构数据结构矩阵的建立与引用结构矩阵的建立与引用 结构矩阵的元素可以是不同的数据类型,它能将一组结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行具有不同属性的数据纳入到一个统一的变量名下进行管理。建立一个结构矩阵可采用给结构成员赋值的办管理。建立一个结构矩阵可采用给结构成员赋值的办法。具体格式为:法。具体格式为:结构矩阵名结构矩阵名.成员名成员名=表达式表达式 其中表达式应理解为矩阵表达式。其中表达式应理解为矩阵表达式。第38页,共68页,编辑于2022年,星期二结构成员的修改结构成员的修改 可以根据需要增加或删除结构的成员。例如要给结构矩阵
29、可以根据需要增加或删除结构的成员。例如要给结构矩阵a增加一个成员增加一个成员x4,可给,可给a中任意一个元素增加成员中任意一个元素增加成员x4:a(1).x4=410075;但其他成员均为空矩阵,可以使用赋值语句给它赋确定的但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。值。要删除结构的成员,则可以使用要删除结构的成员,则可以使用rmfield函数来完成。例如,函数来完成。例如,删除成员删除成员x4:a=rmfield(a,x4);第39页,共68页,编辑于2022年,星期二2 单元数据单元数据单元矩阵的建立与引用单元矩阵的建立与引用建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号建立单
30、元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。括起来。可以用带有大括号下标的形式引用单元矩阵元素。例如可以用带有大括号下标的形式引用单元矩阵元素。例如b3,3。单元矩阵的元素可以是结构或单元数据。单元矩阵的元素可以是结构或单元数据。可以使用可以使用celldisp函数来显示整个单元矩阵,如函数来显示整个单元矩阵,如celldisp(b)。还可以删除单元矩阵中的某个元素。还可以删除单元矩阵中的某个元素。第40页,共68页,编辑于2022年,星期二七.M文件的编辑与调试用用MATLAB的程序文件是以的程序文件是以.m为扩展为扩展名的文本文件,称为名的文本文件,称为M文件。其语文件。其语句的执行
31、相当于依次在命令窗口输句的执行相当于依次在命令窗口输入相应的命令入相应的命令.M文件中文件中,说明性的文字说明性的文字(注释注释)用用%开开头头,用用Help命令可以显示说明文字的命令可以显示说明文字的内容内容第41页,共68页,编辑于2022年,星期二例Hello.m%program hello.m%Hello,Students!%Good morning!%Study hard and make progress every day!%Good good study,day day up!%第42页,共68页,编辑于2022年,星期二上段程序运行结果:无任何显示.将%Hello,Stude
32、nts!修改成 disp(Hello,Students!)重新运行,理解注释的作用,注意编程风格:必要的注释;分进缩写;模块化;做研究笔记,记下各个文件的功能及注意事项.第43页,共68页,编辑于2022年,星期二八.文件内容的输入与修改输入修改保存程序的调试第44页,共68页,编辑于2022年,星期二九.流程控制之循环结构(1)For 循环 语法:for 循环变量=初值:步长:终值 循环体 end第45页,共68页,编辑于2022年,星期二例:连加算法%multiplus1.ms=0for i=1:1000 s=s+I;endsprintf(s=%d,s)第46页,共68页,编辑于2022年
33、,星期二例:累乘算法%multitime1.mp=1;for n=1:1:10 p=p*n;endsprintf(p=%dn,p)第47页,共68页,编辑于2022年,星期二例:连加算法和累乘算法的合用:求e的值。%programe e1.m%Gives the exp number eE=1;for n=1:100 p=1;for m=1:n p=p*m;end E=E+1/p;endsprintf(p=%fn,p)第48页,共68页,编辑于2022年,星期二例:在非线性物理中的应用举例。画出logistic映射图迭代函数:第49页,共68页,编辑于2022年,星期二%programe bu
34、g.m 虫口模型x=0.6;u=2.6:0.001:4;for j=1:150%迭代150次可稳定 x=u.*(x-x.2);end for i=1:100 x=u.*(x-x.2);plot(u,x,r,marker,.,markersize,1);hold onend第50页,共68页,编辑于2022年,星期二3.流程控制之循环结构(2)While 循环 语法:while 条件表达式 循环体语句 endwhile语句的一般格式为:语句的一般格式为:while(条件条件)循环体语句循环体语句 end第51页,共68页,编辑于2022年,星期二例:用While 循环实现连加算法%multipl
35、us1.ms=0for i=1:1000 s=s+i;endsprintf(s=%d,s)%multiplus2.ms=0;N=1;While n=1000 s=s+n;n=n+1;endsprintf(s=%d,s)第52页,共68页,编辑于2022年,星期二十.流程控制之分支结构(1)if-else-end语句语法:if 逻辑表达式 语句体1 else 语句体2 end说明:当条件成立时,执行语句组1,否则执行语句组2。扩展:精简:第53页,共68页,编辑于2022年,星期二例:分段函数的取值x=input(请输入x的值:);if x=0 y=(x+sqrt(pi)/exp(2);else
36、 y=log(x+sqrt(1+x*x)/2;endy第54页,共68页,编辑于2022年,星期二(2)switch-case语句switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:switch 表达式 case 值1 语句组1 case 值2 语句组2 case 值m 语句组m otherwise 语句组n end第55页,共68页,编辑于2022年,星期二十一.数据的输入输出(1)键盘输入数据从键盘输入数据,可以用函数input实现.格式:A=input(提示信息,选项);字符串s时,输入为字符串,无此项时为数值.第56页,共68页,编辑于2022年,星期二例:Xm=i
37、nput(whats your name?,s);第57页,共68页,编辑于2022年,星期二(2)在命令窗口输出数据disp 函数可提供在命令窗口输出数据的功能.格式:disp(输出项)可以是矩阵,也可以是字符串.有多项时用方括号括起.第58页,共68页,编辑于2022年,星期二例程:求一元二次方程的根a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x1=,num2str(x(2)第59页,共68页,编辑于2022年,星
38、期二(3)磁盘文件的打开与关闭打开文件 语法:fid=fopen(filename,permission);文件标识符(内存变量名)磁盘文件名打开模式r读模式w写模式第60页,共68页,编辑于2022年,星期二(3)磁盘文件的打开与关闭关闭文件 语法:fclose(fid);第61页,共68页,编辑于2022年,星期二例:打开一个文件,准备写入数据.x=0:0.2:2;y=x;2*exp(x);fid=fopen(test1.txt,w)%fprintf(fid,%6.2f%12.8fn,y);fclose(fid);第62页,共68页,编辑于2022年,星期二(4)磁盘文件的写入命令 fpr
39、intf语法:count=fprintf(fid,format,A,)第63页,共68页,编辑于2022年,星期二(4)磁盘文件的读出命令 fscanf语法:A,count=fscanf(fid,format,size)例:fid=fopen(test1.txt,r);A,c=fprintf(fid,%f%f,32);第64页,共68页,编辑于2022年,星期二十二.模块化的程序设计:函数文件(1)函数文件的建立函数文件由function语句引导,其基本结构为Function 输出形参表=函数名(输入形参表)注释说明部分 函数体部分.例:利用函数文件实现直角坐标与极坐标之间的转换.第65页,共
40、68页,编辑于2022年,星期二函数文件 tran.mfunction rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);第66页,共68页,编辑于2022年,星期二(2)函数文件的调用 保证所建函数文件在搜索路径中,即可直接调用之.例:用main1.m调用tran.m x=input(please input x=);y=input(please input y=);rho,the=tran(x,y);rho the 第67页,共68页,编辑于2022年,星期二作业:P93 1,2学习小组:三人一组第68页,共68页,编辑于2022年,星期二