(完整版)MATLAB编程入门_第1页
(完整版)MATLAB编程入门_第2页
(完整版)MATLAB编程入门_第3页
(完整版)MATLAB编程入门_第4页
(完整版)MATLAB编程入门_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

1、matlabmatlab编程入门编程入门 目目 录录第第1章章 matlab简介简介第第2章章 matlab基本语法基本语法2.1 变量及其赋值变量及其赋值2.2 矩阵的初等运算矩阵的初等运算2.3 元素群运算元素群运算2.4 逻辑判断及流程控制逻辑判断及流程控制2.5 基本绘图方法基本绘图方法2.6 m文件及程序调试文件及程序调试第第3章章 matlab在电路中的应用在电路中的应用3.1 电阻电路电阻电路3.2 动态电路动态电路3.3 正弦稳态电路正弦稳态电路3.4 频率响应频率响应3.5 二端口电路二端口电路第一章第一章 matlab简介简介 matlab(matrix laborator

2、y,即矩阵实验室即矩阵实验室)是是mathwork公司推出的一套高效率的数值计算和可视化软件。公司推出的一套高效率的数值计算和可视化软件。 matlab是当今科学界最具影响力、也是最具活力的软件,是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。 它提供了强大的科学运算、灵活的程序设计流程、高质量它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。能。 matlab语言有如下优点:

3、语言有如下优点: 1.编程简单使用方便编程简单使用方便 matlab的基本数据单元是既不需要指定维数、也不需要的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在惯相同。因此,在matlab环境下,数组的操作与数的操作环境下,数组的操作与数的操作一样简单。一样简单。 matlab的矩阵和向量操作功能是其他语言无法比拟的。的矩阵和向量操作功能是其他语言无法比拟的。 2.函数库可任意扩充函数库可任意扩充 由于由于matlab语言库函数与用户文件的形式相同,所以语言库函数与用户文件的形式

4、相同,所以用户文件可以像库函数一样随意调用。所以用户可根据自己用户文件可以像库函数一样随意调用。所以用户可根据自己的需要任意扩充函数库。的需要任意扩充函数库。 3.语言简单内涵丰富语言简单内涵丰富 matlab语言中最重要的成分是函数,其一般形式为:语言中最重要的成分是函数,其一般形式为: function a,b,c=fun(d,e,f) fun是自定义的函数名,只要不与库函数名相重,并且是自定义的函数名,只要不与库函数名相重,并且符合字符串的书写规则即可。这里的函数既可以是数学上的符合字符串的书写规则即可。这里的函数既可以是数学上的函数,也可以是程序块或子程序,内涵十分丰富。每个函数函数,

5、也可以是程序块或子程序,内涵十分丰富。每个函数建立一个同名的建立一个同名的m文件,如上述函数的文件名为文件,如上述函数的文件名为fun.m。这种。这种文件简单、短小、高效,并且便于调试。文件简单、短小、高效,并且便于调试。 4.简便的绘图功能简便的绘图功能 matlab具有二维和三维绘图功能,使用方法十分简便。具有二维和三维绘图功能,使用方法十分简便。而且用户可以根据需要在坐标图上加标题。坐标轴标记。文而且用户可以根据需要在坐标图上加标题。坐标轴标记。文本注释及栅格等,也可一指定图线形式本注释及栅格等,也可一指定图线形式(如实线、虚线等如实线、虚线等)和和颜色,也可以在同一张图上画不同函数的曲

6、线,对于曲面图颜色,也可以在同一张图上画不同函数的曲线,对于曲面图还可以画出等高线。还可以画出等高线。 5.丰富的工具箱丰富的工具箱 由于由于matlab的开放性,许多领域的专家都为的开放性,许多领域的专家都为matlab编写了各种程序工具箱。编写了各种程序工具箱。 这些工具箱提供了用户在特别应用领域所需的许多函数,这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。函数,达到事半功倍的效果。第二章第二章 matlab基本语法基本语法2.1 变量及其赋值变量及其赋值(

7、1)标识符与数)标识符与数 标识符是标识变量名、常量名、函数名和文件名的字符标识符是标识变量名、常量名、函数名和文件名的字符串的总称。标识符可以是英文字母、数字和下划线等符号。串的总称。标识符可以是英文字母、数字和下划线等符号。标识符第标识符第1个字符必须是英文字母,个字符必须是英文字母,matlab对大、小写敏对大、小写敏感。感。 matlab只有一种数据格式,双精度(即只有一种数据格式,双精度(即64位)二进制,位)二进制,对应于十进制对应于十进制16位有效数和位有效数和308次幂。次幂。(2)矩阵及其元素的赋值)矩阵及其元素的赋值变量变量=表达式(数)表达式(数)a=1 2 3; 4 5

8、 6;7 8 9x=-1.3 sqrt(3) (1+2+3)/5*4x(5)=abs(x(1)a(4,3)=6.5a = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 0 0 6.5000 元素之间用逗号、空格分开。不同行以分元素之间用逗号、空格分开。不同行以分号隔开。语句结尾用回车或逗号,会显示号隔开。语句结尾用回车或逗号,会显示结果,如果不想显示结果,用分号。结果,如果不想显示结果,用分号。 元素用()中的数字(下标)来注明,一元素用()中的数字(下标)来注明,一维用一个下标,二维用两个下标,逗号分维用一个下标

9、,二维用两个下标,逗号分开。开。 a(5,:)=5,4,3b=a(2,4,1,3)a(2,4,5, : )=a/7 如果赋值元素的下标超过原来矩阵的大如果赋值元素的下标超过原来矩阵的大小,矩阵的行列会自动扩展。小,矩阵的行列会自动扩展。 全行赋值,用冒号。全行赋值,用冒号。 提取交点元素;提取交点元素; 抽取某行元素用空矩阵。抽取某行元素用空矩阵。 (3)复数)复数c=3+5.2iz=1+2i,3+4i; 5+6i,7+8iz=1,3; 5,7+2,4; 6,8*if=sqrt(1+2i)f*f 复数的虚数部分用复数的虚数部分用i或或j表示,如表示,如曾用过曾用过i, j 作变量,用作变量,用

10、clear i,j 复数矩阵有两种赋值方法:复数矩阵有两种赋值方法: 将其元素逐个赋予复数;将其元素逐个赋予复数; 将其实部和虚部矩阵分别赋值。将其实部和虚部矩阵分别赋值。w=z (共轭转置)(共轭转置)u=conj(z) (共轭)(共轭)v=conj(z) (转置)(转置) z复数矩阵共轭转置:行列互换,复数矩阵共轭转置:行列互换,各元素的虚部反号。各元素的虚部反号。 函数函数conj(z)共轭:只把各元)共轭:只把各元素的虚部反号。素的虚部反号。 转置转置conj(z):行列互换。:行列互换。z = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.

11、0000i 7.0000 + 8.0000iw=z(共轭转置)(共轭转置)w = 1.0000 - 2.0000i 5.0000 - 6.0000i 3.0000 - 4.0000i 7.0000 - 8.0000iu=conj(z) (共轭)(共轭)u = 1.0000 - 2.0000i 3.0000 - 4.0000i 5.0000 - 6.0000i 7.0000 - 8.0000iv=conj(z) (转置)(转置)v = 1.0000 + 2.0000i 5.0000 + 6.0000i 3.0000 + 4.0000i 7.0000 + 8.0000i(4)变量检查)变量检查wh

12、owhosinfnan 检查工作空间中的变量;检查工作空间中的变量; 检查变量的详细特征检查变量的详细特征 无穷大无穷大 1/0; 非数(非数(not a number) 0/0 inf/inf 0*inf。 系统不停止运算,结果仍为系统不停止运算,结果仍为inf或或nan。(5)基本赋值矩阵)基本赋值矩阵f1=ones(3,2)f2=zeros(2,3)f3=magic(3)f4=eye(2)f5=linspace(0,1,5)fb1=f1,f3;f4,f2fb2=fb1;f5 全全1矩阵矩阵 全全0矩阵矩阵 魔方矩阵:元素由魔方矩阵:元素由1到到nn的自然数组成,每行、每的自然数组成,每行

13、、每列及两对角线上的元素之和均等于列及两对角线上的元素之和均等于(n3+n)/2。 单位矩阵是单位矩阵是nn阶的方阵。对角线上元素为阶的方阵。对角线上元素为1。 线性分割函数线性分割函数 大矩阵可由小矩阵组成,其行列数必须正确,恰大矩阵可由小矩阵组成,其行列数必须正确,恰好填满全部元素。好填满全部元素。 f1 = 1 1 1 1 1 1 全全1矩阵矩阵f3 = 8 1 6 魔方矩阵魔方矩阵 3 5 7 4 9 2线性分割函数线性分割函数f5 = 0 0.2500 0.5000 0.7500 1.0000大矩阵可由小矩阵组成大矩阵可由小矩阵组成fb2 =1.0000 1.0000 8.0000

14、1.0000 6.0000 1.0000 1.0000 3.0000 5.0000 7.0000 1.0000 1.0000 4.0000 9.0000 2.0000 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0.2500 0.5000 0.7500 1.0000f2 = 0 0 0 全全0矩阵矩阵 0 0 0f4 = 1 0 单位矩阵单位矩阵 0 1fb1 = 1 1 8 1 6 1 1 3 5 7 1 1 4 9 2 1 0 0 0 0 0 1 0 0 0fb1=f1,f3;f4,f2fb2=fb1;f5 2.2 矩阵的初等运算矩阵的初等运算(1)矩阵的加减乘法)矩阵

15、的加减乘法i. 加、减法:相加减的两矩阵阶数必须相同,加、减法:相加减的两矩阵阶数必须相同,对应元素相加减。对应元素相加减。n,m=size(fb2)x=-1 0 1; y=x-1y = -2 -1 0 语句语句size检查矩阵阶数,两矩阵检查矩阵阶数,两矩阵相加,阶数必须相同。相加,阶数必须相同。 两相加减的矩阵中有一个是标两相加减的矩阵中有一个是标量时,量时,matlab将标量扩展成将标量扩展成同等元素矩阵,与另一矩阵相同等元素矩阵,与另一矩阵相加减。加减。 pi*x 标量与矩阵相乘,不检查阶数,标量乘以矩阵的每一个元素。标量与矩阵相乘,不检查阶数,标量乘以矩阵的每一个元素。x=-1 0

16、1; x与与y内阶数不同,将内阶数不同,将y转置转置 y。读作。读作x左乘左乘y。y =-2 -1 0;x*y ans = 2 ans = 2 0 -2y*x x右乘右乘y。 1 0 -1 0 0 0eye(3)*a 左、右乘结果不同,只有单位矩阵例外。左、右乘结果不同,只有单位矩阵例外。a*eye(3) 单位矩阵乘以矩阵单位矩阵乘以矩阵a,左、右乘结果仍等于该矩阵。,左、右乘结果仍等于该矩阵。a = 1 2 3 ans = 1 2 3 ans = 1 2 3 4 5 6 4 5 6 4 5 6 7 8 9 7 8 9 7 8 9ii.矩阵乘法矩阵乘法矩阵矩阵a np阶与阶与矩阵矩阵b pm阶

17、的乘积阶的乘积 c是是nm阶矩阵。阶矩阵。p是是a阵的阵的列数列数,b阵的阵的行数行数,称为两个相乘矩阵的,称为两个相乘矩阵的内阶数内阶数。两矩阵相乘的必要条件是两矩阵相乘的必要条件是内阶数相等内阶数相等。c(i,j)=ka(i,k)b(k,j)值为值为a阵第阵第i行和行和b阵第阵第j列对应元素乘积的和。列对应元素乘积的和。(2)矩阵的除法及线性方程组的解)矩阵的除法及线性方程组的解a =1 2 3 4 5 6 7 8 9av=i v=a-1v=inv(a) inv(a)*av = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007

18、-0.4504 0.9007 -0.4504 nn阶方阵阶方阵a和同阶的方阵和同阶的方阵v相乘,得出相乘,得出n阶单位矩阵阶单位矩阵i。 i为为eye(n)。 v是是a的逆阵。的逆阵。v存在条件:存在条件:a的行列式不等于的行列式不等于0,det(a)0 v=a-1 matlab内部函数内部函数inv,得出,得出a的逆阵的逆阵v。d*x=b inv(d)*d*x=inv(d)*b inv(d)*d=i i*x=xx=inv(d)*b=dbx*d=b x=b*inv(d)=b/d d与与b行数相等行数相等 两端同时左乘以两端同时左乘以inv(d) 逆阵逆阵 单位阵单位阵 db为为d左除左除bx=

19、db,左除时阶数检查条件:两矩阵的行数必须相等。,左除时阶数检查条件:两矩阵的行数必须相等。 未知矩阵在左未知矩阵在左. d的逆阵右乘以的逆阵右乘以b,记作,记作 /d 右除。右除。 右除时阶数检查条件:两矩阵的列数必须相等。右除时阶数检查条件:两矩阵的列数必须相等。a=1 2 3; 3 -5 4; 7 8 9x=x1,x2,x3b=2;0;2ax=b x=ab a左除b方程组 x1+2x2+3x3=2 3x1- 5x2+4x3=0 7x1+8x2+9x3=2可以表示为ax=ba=1 2 3;4 5 6b=2 4 0; 1 3 5d=1 4 7; 8 5 2; 3 6 0运算:a*b daa*

20、b? error using = *inner matrix dimensions must agree.da? error using = matrix dimensions must agree.a*b ans = 6 16 20 9 23 25 12 30 30a*b ans = 10 22 28 49da ans = -0.0370 0 0.5185 1.0000 -0.1481 0a/d ans = 0.4074 0.0741 0.0000 0.7407 0.4074 0.0000解线性方程组解线性方程组ax=b 6x1+3x2+4x3=3 -2 x1+5 x2+7 x3=-48 x

21、1-4 x2-3 x3=-7 a=6 3 4; -2 5 7; 8 -4 -3b=3;-4; -7x=ab a = 6 3 4 -2 5 7 8 -4 -3b = 3 -4 -7x = 0.6000 7.0000 -5.4000(3)矩阵的乘方和幂次函数)矩阵的乘方和幂次函数 matlab的运算符的运算符*、/、和和,指数函数,指数函数expm、对数函数、对数函数logm和开方和开方函数函数sqrtm是对矩阵进行的,即把矩阵作为一个整体来运算。除此以外,是对矩阵进行的,即把矩阵作为一个整体来运算。除此以外,其他其他matlab函数都是对矩阵中的元素分别进行,英文直译为数组运算函数都是对矩阵中的

22、元素分别进行,英文直译为数组运算(array operations),译为),译为“元素群运算元素群运算”s=1 2; 3 4d=1 4 7; 8 5 2; 3 6 0d22.dds 幂次运算:矩阵为底数,指数是标量,同矩阵乘法一样,幂次运算:矩阵为底数,指数是标量,同矩阵乘法一样,为保内阶数相同,底数的矩阵必须是方阵。矩阵是指数,为保内阶数相同,底数的矩阵必须是方阵。矩阵是指数,底数是标量,矩阵也必须是方阵。底数和指数不能同时底数是标量,矩阵也必须是方阵。底数和指数不能同时为矩阵。为矩阵。 按矩阵运算,等于按矩阵运算,等于d* d 按元素群运算按元素群运算 非法运算非法运算u1=sqrtm(

23、s)u2=sqrt(s)v1=expm(s)v2=exp(s)logm(d)log(d) 按矩阵运算,求平方根,可以用按矩阵运算,求平方根,可以用u1* u1=s验证验证 按元素群运算,按元素群运算,u2* u2s,u2.u2=s 按矩阵运算按矩阵运算 按元素群运算按元素群运算 按矩阵运算按矩阵运算 按元素群运算按元素群运算 s =1 2 3 4d = 1 4 7 8 5 2 3 6 0d2 ans = 54 66 15 54 69 66 51 42 33 2.d ans = 2 16 128 256 32 4 8 64 1ds? error using = at least one oper

24、and must be scalar.v1=expm(s)v1 = 51.9690 74.7366 112.1048 164.0738v2=exp(s)v2 = 2.7183 7.3891 20.0855 54.5982u1=sqrtm(s)u1 =0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458iu2=sqrt(s)u2 = 1.0000 1.4142 1.7321 2.0000logm(d)ans = 1.2447 -0.9170 2.8255 1.6044 2.5760 -1.9132 -0.7539 1

25、.1372 1.6724log(d)warning: log of zero.ans = 0 1.3863 1.9459 2.0794 1.6094 0.6931 1.0986 1.7918 -inf(4)矩阵结构形式的提取与变换)矩阵结构形式的提取与变换a=8 1 6 0; 3 5 7 1; 4 9 2 2b1=fliplr(a)b2=flipud(a)b3=reshape(a,2,6) 提取矩阵中某些特殊结构的元素,提取矩阵中某些特殊结构的元素, 组成新的矩阵,改变矩阵结构。组成新的矩阵,改变矩阵结构。 fliplr矩阵左右翻转矩阵左右翻转 flipud矩阵上下翻转矩阵上下翻转 resha

26、pe阶数重组(元素总数不变)阶数重组(元素总数不变)b4=rot90(a)b5=diag(a)b6=tril(a)b7=triu(a)b8=a(: ) rot90矩阵整体反时针旋转矩阵整体反时针旋转90度度 diag提取或建立对角阵提取或建立对角阵 tril取矩阵的左下三角部分取矩阵的左下三角部分 triu取矩阵的右上三角部分取矩阵的右上三角部分 将元素按列取出排成一列将元素按列取出排成一列 a = 8 1 6 0 3 5 7 1 4 9 2 2b1=fliplr(a)b1 = 0 6 1 8 1 7 5 3 2 2 9 4b2=flipud(a)b2 = 4 9 2 2 3 5 7 1 8

27、1 6 0b3=reshape(a,2,6)b3 = 8 4 5 6 2 1 3 1 9 7 0 2b4=rot90(a)b4 = 0 1 2 6 7 2 1 5 9 8 3 4b5=diag(a)b5 = 8 5 2b6=tril(a)b6 = 8 0 0 0 3 5 0 0 4 9 2 0b7=triu(a)b7 = 8 1 6 0 0 5 7 1 0 0 2 2b8=a(: ) b8 =8 3 4 1 5 9 6 7 2 0 1 22.3 元素群运算元素群运算(1)数组及其赋值)数组及其赋值数组是单行或单列的矩阵,一个数组是单行或单列的矩阵,一个n阶的数组可以表述为一个阶的数组可以表述为

28、一个n组向量。组向量。t=0 : 0.02 : 1z=10 : -3: -5k=1 : 6用两个冒号组成等增量语句用两个冒号组成等增量语句格式:格式:t=初值:增量:终值初值:增量:终值增量也可以设为负值,此时初值要比终值大增量也可以设为负值,此时初值要比终值大增量为增量为1时,增量值可以省略。时,增量值可以省略。t = 0 0.0200 0.0400 0.0600 0.0800 0.1000 0.1200 0.1400 0.1600 0.1800 0.2000 0.2200 0.2400 0.2600 0.2800 0.3000 0.3200 0.3400 0.3600 0.3800 0.4

29、000 0.4200 0.4400 0.4600 0.4800 0.5000 0.5200 0.5400 0.5600 0.5800 0.6000 0.6200 0.6400 0.6600 0.6800 0.7000 0.7200 0.7400 0.7600 0.7800 0.8000 0.8200 0.8400 0.8600 0.8800 0.9000 0.9200 0.9400 0.9600 0.9800 1.0000z = 10 7 4 1 -2 -5k = 1 2 3 4 5 6theta = 0 0.7854 1.5708 2.3562 3.1416 3.9270 4.7124 5.

30、4978 6.2832theta= linspace (0, 2*pi, 9)w=logspace (0, 1, 11) 用用linspace函数函数 格式:格式:linspace(初值、终值、点数)(初值、终值、点数)logspace函数,自变量按等比级数赋值。函数,自变量按等比级数赋值。从从10的的0次幂到次幂到1次幂之间按幂等分为次幂之间按幂等分为11点点(数是等比的)(数是等比的) w = 1.0000 1.2589 1.5849 1.9953 2.5119 3.1623 3.9811 5.0119 6.3096 7.9433 10.0000(2)元素群的四则运算和幂次运算)元素群的四

31、则运算和幂次运算 元素群的运算是矩阵中所有元素按单个元素运算。运算符前加元素群的运算是矩阵中所有元素按单个元素运算。运算符前加.号,表号,表示元素群运算。示元素群运算。 元素群的运算的两个矩阵必须是同阶的。(标量会自动扩展为同阶矩元素群的运算的两个矩阵必须是同阶的。(标量会自动扩展为同阶矩阵参与运算)阵参与运算)x=1, 2, 3y=4, 5, 6z=x.*yz=x.yz=x.yz=x.2z=2.x yz =4 10 18 x*y不能成立不能成立z =4.0 2.5 2.0 元素群没有左除右除之分元素群没有左除右除之分z =1 32 729 xy 能成立吗?能成立吗?z =1 4 9 x2能成

32、立吗?能成立吗?z =2 4 8 16 32 64 2x y 能成立吗?能成立吗?d=1 4 7; 8 5 2; 3 6 0d3d.33.d3d 元素群的幂次运算是各个元素自行作幂次运算,元素群的幂次运算是各个元素自行作幂次运算,对每个元素的这种运算和对标量运算一样。但对每个元素的这种运算和对标量运算一样。但是,不能将元素群运算称为数组运算。是,不能将元素群运算称为数组运算。 区别左边运算区别左边运算 输入算式输入算式 dd3d.3输出结果输出结果 1 4 7 8 5 2 3 6 0 627 636 510 804 957 516 486 612 441 1 64 343 512 125 8

33、27 216 0输入输入算式算式 3.d3d输出输出结果结果 3 81 2187 6561 243 9 27 729 1 1.0e+005 * 2.6388 - 0.0000i 3.0233 + 0.0000i 1.9754 + 0.0000i 3.4735 - 0.0000i 3.9797 + 0.0000i 2.6003 + 0.0000i 2.3170 - 0.0000i 2.6546 + 0.0000i 1.7345 + 0.0000i (3)元素群的函数)元素群的函数 除矩阵运算的乘、右除、左除、幂指数(除矩阵运算的乘、右除、左除、幂指数( / )、)、sqrtm、expm、logm

34、函数外,基本函数库中的常用函数都可用于元素群运算。自变量可以是函数外,基本函数库中的常用函数都可用于元素群运算。自变量可以是任意阶的矩阵。任意阶的矩阵。 基本函数库(基本函数库(elfun)x=0: 0.1: pi/4x = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000disp(显示显示 x sin(x) cos(x) tan(x)disp(x, sin(x) cos(x) tan(x) 显示显示 x sin(x) cos(x) tan(x) 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000

35、0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.84232.4 逻辑判断及流程控制逻辑判断及流程控制 1. 关系运算关系运算a= 2+2=4a=(2+2=4)a=(34)a=(43)a=(3=4)a=(43)a=(34)等于,等于,a = 1a = 1小于,小于,a = 1 a = 0小于等于,小于等于,a = 1a = 0大于,大于

36、,a =1a =0a=(4=3)a=(3=4)a=(3=4)a=magic(6)rem(a,3)p=(rem(a, 3)=0)lp=find (p) 大于等于,大于等于,a=1a=0不等于,不等于,a=1魔方矩阵,每行、每列、对角线的元素之和魔方矩阵,每行、每列、对角线的元素之和=(n3+n)/2a整除整除3,求余数,求余数余数为余数为0,是真,即整除,是真,即整除找出找出p矩阵中不为零元素的序号,矩阵元素是按列排序号的。矩阵中不为零元素的序号,矩阵元素是按列排序号的。a=magic(6)a =35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8

37、28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11rem(a,3)ans = 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2p=(rem(a, 3)=0)p =0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0lp=find (p) lp=2 5 9 12 13 16 20 23 27 30 31 34矩阵元素的序号排法:矩阵元素的序号排法: nm阵中下标为阵中下

38、标为(j,k)的元素序号为的元素序号为 l=(k-1)*n+j171319253128142026323915212733410162228345111723293561218243036符号符号意义意义符号符号意义意义符号符号意义意义+加加-减减*矩阵乘矩阵乘矩阵左除矩阵左除/矩阵右除矩阵右除矩阵乘幂矩阵乘幂.*矩阵元素乘矩阵元素乘./矩阵元素除矩阵元素除.矩阵元素乘幂矩阵元素乘幂( )优先,下标输优先,下标输入参量入参量矩阵,向量输矩阵,向量输入变量入变量:整行(列)等增整行(列)等增量赋值量赋值.小数点小数点.母目录母目录行命令延续符行命令延续符,语句分割符,语句分割符,显示显示;语句分

39、割符,语句分割符,不显示不显示=赋值符赋值符转置,引用转置,引用!操作系统命令操作系统命令%注释符注释符=关系相等符关系相等符关系大小符关系大小符=关系不等符关系不等符&逻辑与逻辑与|逻辑或逻辑或逻辑非逻辑非xor异或异或kronkronecker积积数数学学及及逻逻辑辑运运算算符符号号 exist检查变量或函数是否有定检查变量或函数是否有定义义any检查向量中有无非零元检查向量中有无非零元素素all检查向量中元素是否全为检查向量中元素是否全为非零非零find找到非零元素的序号找到非零元素的序号isnan元素为元素为nan时得时得1isinf元素为元素为inf时得时得1isfinite

40、元素为有限值时得元素为有限值时得1isempty矩阵为空阵时得矩阵为空阵时得1isreal矩阵为实数阵时得矩阵为实数阵时得1issparse矩阵为稀疏阵时得矩阵为稀疏阵时得1isstr为文本字符串时得为文本字符串时得1isglobal变量为全局变量时得变量为全局变量时得1bitand按位求按位求“与与”bitcmp按位求按位求“非非”(补)(补)bitor按位求按位求“或或”bitmax最大浮点整数最大浮点整数bitxor按位求按位求“异或异或”bitset设置位设置位bitget获取位获取位bitshift按位移动按位移动union集合集合“合合”unique去除集合中的重复元素去除集合中的

41、重复元素intersect集合集合“交交”setdiff集合集合“差差”setxor集合集合“异或异或”ismember是集合中的元素时为真是集合中的元素时为真逻逻辑辑字字符符检检查查 位位运运算算 集集合合运运算算 2. 逻辑运算逻辑运算a=0 0 1 1b=0 1 0 1a&ba|baxor(a, b)g=magic(6)rem(g,3)将逻辑运算用于元素群,得出同阶的将逻辑运算用于元素群,得出同阶的0-1矩阵。矩阵。与与或或非非异或异或g整除整除3,求余数,求余数p=(rem(g, 3)=0)u=p|pall(p)all(u)any(p) 可以按行、按列判断一群元素的逻辑值。可以

42、按行、按列判断一群元素的逻辑值。两个对元素群运算的函数:两个对元素群运算的函数:列中有一个元素为列中有一个元素为0,即为,即为0列中元素全为列中元素全为1,才为,才为1列中有一个元素为列中有一个元素为1,即为,即为1a =0 0 1 1b =0 1 0 1a&b ans = 0 0 0 1a|b ans = 0 1 1 1a ans = 1 1 0 0 xor(a, b) ans = 0 1 1 0g=magic(6)g = 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16

43、 4 36 29 13 18 11rem(g,3) ans = 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2rem(g,3) ans = 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2p=(rem(g, 3)=0) p = 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0u=p|pu = 1 1 1 1 1 1

44、 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1all(p)all(u)any(p) ans = 0 0 0 0 0 0ans = 1 1 1 1 1 1ans = 1 1 1 1 1 13. 流程控制语句流程控制语句(1)if语句语句if (表达式表达式) 语句组语句组a,endif (表达式表达式1) 语句组语句组a,else 语句组语句组b,endif (表达式表达式1) 语句组语句组a,elseif (表达式表达式2) 语句组语句组b,else 语句组语句组c,end n=input( n=), if rem(n,

45、 2)=0 a=even, else a=odd, end n = 7 a =odd; n = 8 a =even n = a =odd n=input( n=), if isempty(n)=1 a=empty, elseif rem(n,2)=0 a=even, else a=odd, end n = a =empty 输入数输入数n,判断奇偶性。如果用户没有键,判断奇偶性。如果用户没有键入数就回车,程序会判断为入数就回车,程序会判断为odd。 修改为用户无输入时程序自动中止。修改为用户无输入时程序自动中止。(2)while语句语句while (表达式表达式) 语句组语句组a,endx=1

46、; while x=inf, x1=x; x=2*x; end, x1x1 = 8.9885e+307求求matlab中的最中的最大实数。大实数。x不断增不断增大,直到无法表示大,直到无法表示它的值,只能用它的值,只能用inf表示为止。表示为止。y=1; while 1+y1, y1=y y=y/2; end, y1 y1 =2.2204e-016求求matlab相对精度,相对精度,y不断减小,直至不断减小,直至matlab分不出分不出1+y与与1的差别为止。的差别为止。 x=1; while x=inf, x1=x; x=1.1*x; end, x1x1 =1.7837e+308(3) fo

47、r语句语句for k= 初值:增量:终值初值:增量:终值 语句组语句组a,end将语句组将语句组a反复执行反复执行n次,每次执行时程序中的次,每次执行时程序中的k值不同。值不同。n=1+(终值(终值-初值)初值)/增量增量用用for语句求三角函数表语句求三角函数表for x=0: 0.1: pi/4 disp(x, sin(x), cos(x), tan(x), end运行结果运行结果 x sin(x) cos(x) tan(x) 0 0 1 0 1/10 839/8404 1195/1201 1499/14940 1/5 209/1052 295/301 374/1845 3/10 409/

48、1384 1647/1724 275/889 2/5 368/945 2882/3129 1777/4203 1/2 501/1045 1699/1936 820/1501 3/5 1153/2042 430/521 979/1431 7/10 947/1470 992/1297 486/577 列出构成列出构成hilbert矩阵的程序矩阵的程序 format rat显示形式是分数近似显示形式是分数近似 n=input(n=), format rat for i=1:n, for j=1:n, h(i, j)=1/(i+j-1); end, end, hn =5h = 1 1/2 1/3 1/

49、4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 1/8 1/5 1/6 1/7 1/8 1/9 增加可读性增加可读性format rat, n=input(n=) for i=1:n for j=1:n, h(i, j)=1/(i+j-1); endendh 在在if,for,while与表达式之间留与表达式之间留空格空格,在表达式与语句组之间必,在表达式与语句组之间必须用须用空格或逗号空格或逗号分隔,必须用分隔,必须用逗逗号或分号号或分号分隔分隔end和和else。 break 是中止循环的命令,在多是中止循环的命令

50、,在多重循环中,重循环中,break只能使程序跳只能使程序跳出包含它的最内部的那个循环。出包含它的最内部的那个循环。(4)switch语句语句switch-case-otherwiseswitch 表达式(标量或字符表达式(标量或字符串)串)case 值值1语句组语句组acase 值值2语句组语句组b.otherwise语句组语句组nend 当表达式的值(或字当表达式的值(或字符串)与某符串)与某case语句中的语句中的值(或字符串)相同时,值(或字符串)相同时,它就执行该它就执行该case语句后的语句后的语句组,然后跳到终点的语句组,然后跳到终点的end。 case语句可以有语句可以有n-1

51、个,个,如果没有任何一个如果没有任何一个case值值能与表达式值相符,则执能与表达式值相符,则执行行otherwise后面的语句组后面的语句组n。n=input( n=), switch mod(n,2), case 1, a=奇奇, case 0, a=偶偶, otherwise, a=空空, endn = 5 a =奇奇n=input( n=), switch rem(n,2), case 1, a=奇奇, case 0, a=偶偶, otherwise, a=空空, end n = 8 a =偶偶判断输入数判断输入数n的奇、偶、空的程序的奇、偶、空的程序mod(x,m)x整除整除m取正余

52、数,取正余数,rem(a,b) a整除整除b,求余数,求余数n= 负数负数 n = -5 a =奇n=-8a =偶2.5 基本绘图方法基本绘图方法1直角坐标中的两维曲线直角坐标中的两维曲线(1)plot(y)-输入一个数组的情况输入一个数组的情况y=5*(rand(1,10) -.5)plot(y)title (my first plot)xlabel(x), ylabel(y)grid 画出画出10个随机数的曲线。个随机数的曲线。rand函数产生函数产生01之间的随机数,平均值是之间的随机数,平均值是0.5。加标题,加标题,坐标轴说明坐标轴说明加坐标网格线加坐标网格线 t=0:0.5:4*p

53、iy=exp(-0.1*t).*sin(t)plot(t,y)y1=exp(-0.1*t).*sin(t+1)plot(t,y1,:) t是横坐标,是横坐标,y为纵坐标为纵坐标y1相位超前相位超前1弧度。弧度。 (2)plot(x,y)-输入两个数组的情况输入两个数组的情况2线型、点型和颜色线型、点型和颜色y2=exp(-0.1*t).*sin(t+1)plot(y2,*b)plot(y1,:y)plot(y2,+r) 蓝色蓝色*号线号线黄色虚线黄色虚线红色红色+号线号线 t=0:0.5:4*pi;y=exp(-0.1*t).*sin(t);y1=exp(-0.1*t).*sin(t+1);p

54、lot(t,y;y1)t是向量,是向量,y是矩阵,如果是矩阵,如果t是列(行)向量,则是列(行)向量,则y的列(行)长度与的列(行)长度与t相同。相同。y的行(列)数就是曲的行(列)数就是曲线的根数。线的根数。这种方法要求所有的输出量有同样的长度和同样这种方法要求所有的输出量有同样的长度和同样的自变量向量。不便于用户自行设定线型和颜色。的自变量向量。不便于用户自行设定线型和颜色。 3多条曲线的绘制多条曲线的绘制有四种方法在一张图上显示多条曲线有四种方法在一张图上显示多条曲线(1)用)用plot(t,y1,y2,)命令命令(2)用)用hold命令命令plot(x1,y1,x2,y2,.xn,yn

55、)plot(t,y,+g,t2,y2,:r);title(线型,点型和颜色线型,点型和颜色); xlabel(时间时间),ylabel(y) x1,y1,x2,y2,xn,yn分别为数组对,每一对数分别为数组对,每一对数组可以绘出一条曲线,每一组数组对的长度可以不组可以绘出一条曲线,每一组数组对的长度可以不同,在后面都可以加线型标志符。同,在后面都可以加线型标志符。 为曲线图加标题为曲线图加标题 plot(t,y), hold on ,plot(t,y1,g);t2=0:.2:2*pi; y2=exp(-0.5*t2).*sin(5*t2+1);plot(t2,y2);hold off 画完一

56、张图用命令保持住,再画下一条曲线。画完一张图用命令保持住,再画下一条曲线。两张图的变量长度可以各不相同。只要每张图两张图的变量长度可以各不相同。只要每张图的自变量和因变量长度相同就可以。的自变量和因变量长度相同就可以。 (3)在)在plot后使用多输入变量后使用多输入变量(2)图用)图用hold命令命令(3)图在)图在plot后使用多输入变量后使用多输入变量(4)用)用plotyy命令命令 y3=5*y2; plotyy(t,y,t2,y3);grid, gtext(t, t2);gtext(y),gtext(y3) plotyy设有两个纵坐标,可以绘制两个设有两个纵坐标,可以绘制两个y尺度不

57、同的变量,尺度不同的变量,x仍只用同一比例尺。仍只用同一比例尺。用用gtext命令可以标注纵坐标和曲线。命令可以标注纵坐标和曲线。 4. 屏幕控制和其他二维绘图屏幕控制和其他二维绘图(1)图形屏幕控制命令)图形屏幕控制命令图形屏幕可以开、关,可以开几个图形窗,可以在一个图形窗图形屏幕可以开、关,可以开几个图形窗,可以在一个图形窗内华几幅分图,每幅分图可以用不同坐标。内华几幅分图,每幅分图可以用不同坐标。figureclfholdhold onhold offcloseclose allsubplot(n,m,p)打开图形窗口;打开图形窗口;清除当前图形窗的内容;清除当前图形窗的内容;保持当前图

58、形窗的内容;保持当前图形窗的内容;再次用再次用hold就解除保持状态。就解除保持状态。关闭当前图形窗口。关闭当前图形窗口。关闭所有图形窗口。关闭所有图形窗口。将图形窗口分为将图形窗口分为n*m个子图,在第个子图,在第p个子图处绘个子图处绘制图形。制图形。 figure创建图形窗口创建图形窗口shg显示图形显示图形图形图形窗的窗的控制控制 gcf获取当前图形窗的句柄获取当前图形窗的句柄refresh刷新图形刷新图形clf清除当前图形窗清除当前图形窗close关闭图形窗关闭图形窗axes在任意位置创建坐标系在任意位置创建坐标系ishold保持当前图形状态为真保持当前图形状态为真轴系轴系的的控制控制

59、gca获取当前坐标系的句柄获取当前坐标系的句柄box形成轴系方向形成轴系方向cla清除当前坐标系清除当前坐标系line创建直线创建直线surface创建曲面创建曲面图形图形对象对象 patch创建图形填充块创建图形填充块light创建照明创建照明image创建图象创建图象通用图形函数(通用图形函数(graphics)(h)set设置对象特性设置对象特性gcbo获得回叫对象的曲柄获得回叫对象的曲柄图形图形get获得对象特性获得对象特性gcbf获得回叫图形的曲柄获得回叫图形的曲柄句柄句柄reset复位对象特性复位对象特性drawnow直接等待图形事件直接等待图形事件操作操作delet删除对象删除对

60、象findobj寻找具有特定值的对象寻找具有特定值的对象gco获得当前对象的句柄获得当前对象的句柄copyobj为图形对象及其子项作硬拷为图形对象及其子项作硬拷贝贝工具工具 closereq请求关闭图形窗请求关闭图形窗ishandle是图形句柄时为真是图形句柄时为真newplot说明说明nextplot的的m文件文件ginput从鼠标作图形输入从鼠标作图形输入uiputfile给出存储文件的对话框给出存储文件的对话框杂项杂项 graymon设定图形窗灰度监视器设定图形窗灰度监视器uigetfile给出询问文件名的对话框给出询问文件名的对话框rbbox涂抹块涂抹块whitebg设定图形窗背景色设定图形窗背景色rota

温馨提示

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

评论

0/150

提交评论