matlab在电气工程中得应用课件_第1页
matlab在电气工程中得应用课件_第2页
matlab在电气工程中得应用课件_第3页
matlab在电气工程中得应用课件_第4页
matlab在电气工程中得应用课件_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

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

文档简介

1Matlab在电气工程中的应用

2第1章MATLAB概述MATLAB简介MATLAB启动与退出MATLAB主体界面MATLAB帮助系统31.1MATLAB简介

MATLAB是一种功能十分强大、运算效率很高的工具软件,MATLAB为MatrixLaboratory的缩写,本意矩阵实验室。在1980年由美国学者克利夫·莫勒(CleveMoler)编制。特别适合线性代数运算。(MathWorks软件公司)同其他高级语言相比,其具有很多优点:1.容易使用2.丰富的内部函数3.强大的图形和符号功能4.与其他软件和语言有良好的对接性41.2MATLAB启动与退出1.2.1MATLAB的启动1.2.2MATLAB的退出1.利用MATLAB菜单退出单击File菜单,从中选择ExitMATLAB。2.使用quit/exit语句退出在指令窗口直接输入quit/exit即可。3.使用热键退出在MATLAB窗口中同时按下Ctrl+Q即可。4.单击窗口可直接退出51.3MATLAB主体界面菜单栏工具栏工作区窗口指令历史窗口指令窗口61.4MATLAB帮助系统1.4.1帮助窗口

1.帮助窗口的起动

2.帮助窗口的内容帮助主题(Contents)帮助索引(Index)帮助查询(Search)联机演示(Demos)1.4.2命令窗口查询帮助

1.help+函数名

2.lookfor+关键字72.2 MATLAB的基本组成和特点2.2.1MATLAB的语言部分

1.特点 (1)具有强大的矩阵运算能力:MatrixLaboratory(矩阵实验室),使得矩阵运算非常简单。 (2)MATLAB是一种演算式语言

MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。 因此MATLAB语言编程简单,使用方便。82.2.2MATLAB软件系统的构成

MATLAB软件主要由主包、SIMULINK和工具箱组成。

MATLAB主包包括以下五部分:(1)MATLAB语言:程序设计(2)MATLAB工作环境:集成工具和程序(3)句柄图形:实现二维、三维数据可视化(4)数学函数库:数学算法集合:正弦、求和、复数……

(5)应用程序接口:用于同C、FORTAN等其它高级语言交互的库。92.2.3MATLAB的图视系统

MATLAB的图形可视能力在所有数学软件中是首屈一指的。MATLAB的图形系统有高层和低层两个部分组成。高层指令友善、简便;低层指令细腻、丰富、灵活。MATLAB有比较完备的图形标识指令。2.2.4MATLAB与外部程序的交互

出现了诸如Mediva等商品软件,能把MATLAB的M文件转变为独立于平台的EXE可执行文件,出现了许多专用软件把MATLAB直接当计算引擎使用。10第2章MATLAB的基本使用方法基本概念基本运算MATLAB的数据类型常用函数标点符号的使用常用操作命令和键盘技巧112.1基本概念在MATLAB中,经常用到标量、向量、矩阵和数组的概念。无论在MATLAB中变量赋何值,在内存中均以矩阵的形式存在。标量:是1×1矩阵,即只含有一个数的矩阵向量:是1×n或n×1的矩阵,即只有一行或一列的矩阵矩阵:是一个矩形数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵数组:数组为矩阵的延伸,其中矩阵和向量都是数组的特例122.2基本运算

MATLAB最主要的功能便是数值计算,主要有以下基本运算符号:符号功能实例+加法2+3-减法2-3*乘法2*3/、\除法2/3、2\3^乘方2^3131.MATLAB语句有两种常见的形式(1)表示式(2)变量=表达式在第一种情况下,计算结果自动赋给名为ans(answer)的变量;在第二种情况下,结果自动赋给等号左边的变量。2.MATLAB的求值次序(1)算式从左到右执行;(2)乘方的优先级最高,乘、除次之,最后是加减,括号的优先级别最高;(3)在有多层括号的情况下,从括号的最里面到最外面逐渐扩展。142.3MATLAB的数据类型1.常量在MATLAB中有一些特定的变量,已被预定义某个特定的值,因此这些变量被称为常量(预定义变量)。ans用作结果的默认变量i、j复数单位pi圆周率(π)nargout函数输出参数个数eps浮点数相对误差realmin最小正浮点数inf无穷大realmax最大正浮点数NaN、nan不定数bitmax最大正整数152.变量在程序执行过程中其值可以变化的量为变量,变量在计算机中占有一定的存储单元,在该单元内存放该变量的值。

MATLAB对于变量命名有以下规则:MATLAB不需对变量进行事先说明及指定类型;变量名长度不超过63位字符(英文字母、数字、下划线);变量名区分大小写;变量名必须以字母开头,变量名中可以包含字母、数字和下划线,但不得出现标点符号;关键字不能作为变量名。16(1)who和whoswho和whos都用来列出matlab工作区中已驻留的变量清单,但不可显示常量,而whos还可以列出变量的维数和性质。例:>>whoYourvariablesare:ab

>>whosNameSizeBytesClassa1x8016408doublearrayb1x8016408doublearrayGrandtotalis1602elementsusing12816bytes(2)clearclear用来清除工作区中的所有变量或部分变量,也可用来恢复常量的原值。例:>>clearab173.复数

MATLAB语言对复数的处理十分简单,在处理复数问题时,不需进行其他任何附加操作。定义复数格式如下:

z=a+bi或z=a+bj z=a+b*i或z=a+b*j>>a=2+3i

a=2.0000+3.0000i>>a=2+3ja=2.0000+3.0000i>>b=2+3*ib=2.0000+3.0000i>>b=2+3*jb=2.0000+3.0000i>>a=1a=1>>b=1b=1>>c=a+bi???Undefinedfunctionorvariable'bi'.注意:只有数字才可以与i、j直接相连,表达式则不可以,应用“*”相连。184.数值显示格式任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。

Format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有:format(short):短格式(5位定点数)99.1253formatlong:长格式(15位定点数) 99.12345678900000formatshorte:短格式e方式9.9123e+001formatlonge:长格式e方式 9.912345678900000e+001format

bank:2位十进制99.12formathex:十六进制格式194.数据的输出格式在MATLAB系统中,数据的存储和计算都是以双精度进行的,但是用户可以改变屏幕上显示的格式,所用指令为format。formatformatshort小数点后4位有效数字,大于1000的实数用科学记数法表示formatlongg选择15位定点和15位科学记数法中更好的进行表示formatlong15位定点数表示formathex使用16进制进行表示formatshorte5位科学记数法表示formatbank用元、角、分进行表示formatlonge15位科学记数法表示format+显示大矩阵用,正、负、零分别用+、-、空格表示formatshortg选择5位定点和5位科学记数法中更好的进行表示formatrationalformatrat用分式表示202.4MATLAB的常用函数

MATLAB提供了丰富的函数,只要正确调用,便可获得正确结果。sin正弦angle相角asin反正弦conj共轭复数cos余弦imag取复数虚部acos反余弦real取复数实部tan正切fix取整数atan反正切mod取余数exp指数运算round四舍五入log自然对数sqrt平方根log10以10为底对数abs绝对值211.三角函数

sin、cos、tan、cot(余切)、asin、acos、atan、acot(反余切)注意事项:①小写!②函数应该出现在等式的右边。③表达式写在()里,例sin(x),其余运算和数学一样。④三角函数以弧度为单位计算。例如:

sin(1)表示的不是sin1°而是sin57.28578°222.指数运算函数

exp、log、log10、log2、sqrt、power(求幂)例:设a=5.67,b=7.8,求

>>a=5.67;>>b=7.8;>>exp(a+b)/log10(a+b)ans=6.2677e+005>>log(b-a)ans=0.7561>>power(a,b)ans=7.5500e+005233.复数运算函数

abs、angle、real、imag、conj、complex例:>>x=1+2i;>>abs(x)ans=2.2361>>angle(x)ans=1.1071>>real(x)ans=1>>imag(x)ans=2>>conj(x)ans=1.0000-2.0000i>>y=complex(1,2)y=1.0000+2.0000i244.取整求余函数

fix、round、floor、ceil、mod、rem、sign>>floor(x)(取小整)ans=9>>x=9.4;>>ceil(x)ans=10>>floor(x)ans=9例:>>x=9.8;>>fix(x)(舍掉小数)ans=9>>round(x)(四舍五入)ans=10>>ceil(x)(取大整)ans=1025a=[-1.9,-0.2,3.4,5.6,7.0,2.4+3.6i]fix(a)(舍掉小数)ans=Columns1through5-1.000003.00005.00007.0000Column62.0000+3.0000i

>>floor(a)(取小整)ans=Columns1through5-2.0000-1.00003.00005.00007.0000Column62.0000+3.0000i26mod:不管“被除数”是正是负,“余数”的符号与“除数”的符号相同

>>mod(5,2) >>mod(-5,2)

ans=1 ans=1

>>mod(5,-2) >>mod(-5,-2)

ans=-1 ans=-1rem:不管“除数”是正是负,“余数”的符号与“被除数”的符号相同

>>rem(5,2) >>rem(5,-2)ans=1 ans=1

>>rem(-5,2) >>rem(-5,-2)

ans=-1 ans=-127>>x=9;>>y=2;>>rem(x,y)ans=1>>mod(x,y)ans=1>>rem(9,-4)ans=1>>mod(9,-2)ans=-1>>sign(9)ans=1>>sign(-9)ans=-1>>sign(0)ans=028例:计算下式的结果,其中x=-3.5°,y=6.7°。>>x=-3.5*pi/180;>>y=6.7*pi/180;>>sin(abs(x)+abs(y))/sqrt(cos(abs(x+y)))ans=0.177229标点符号定义标点符号定义;区分行,取消运行显示等.小数点,区分列,函数参数分隔符等…连接语句:在数组中应用较多‘字符串的标识符号()指定运算优先级等=赋值符号[]矩阵定义的标志等!调用操作系统运算{}用于构成单元数组等%注释语句的标识2.5MATLAB的标点符号

MATLAB提供了丰富的函数,只要正确调用,便可获得正确结果。302.6常用操作命令和键盘技巧在使用MATLAB编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事倍功半的效果。常用操作指令cd显示或改变工作目录clf清除图形窗口clc清除工作窗dir显示当前目录下文件常用键盘操作和快捷键↑(Ctrl+p)调用上一行Home(Ctrl+a)光标置于行首↓(Ctrl+n)调用下一行End(Ctrl+e)光标置于行尾Ctrl+←光标左移一单词Alt+BackSpace回复上一次删除Ctrl+→光标右移一单词Ctrl+c终止当前指令3.1矩阵的构建3.1.1直接输入创建矩阵创建矩阵最简单的方法就是直接输入矩阵元素,输入格式有以下的要求:整个矩阵以“[]”作为首尾;行与行之间用分号“;”或回车键分隔;每行中的元素用“,”或空格分隔;矩阵中的元素可以是数字或者表达式;如果矩阵中没有元素,这样的矩阵称为空阵(EmptyMatrix)。【例1】矩阵的分行输入

A=[1,2,3 4,5,6 7,8,9]

显示结果如下:

A= 123 456 789》a=1;b=2;c=3;》x=[5bc;

a*ba+cc/b]x=5.0002.0003.0002.0004.0001.500【例2】命令窗口中输入》y=[245;368]y=245368>>a=[123;456;789]a=123456789>>b=[1sin(pi/6)sqrt(9)3+560]b=1.00000.50003.00008.00006.000003.1.2利用内部函数产生矩阵

1.利用内部函数可以很容易生成一些常见的特殊矩阵,常用函数如下:eye(m,n)产生单位矩阵zeros(m,n)产生元素全为0的矩阵ones(m,n)产生元素全为1的矩阵rand(m,n)产生均匀分布的随机元素矩阵,范围0~1randn(m,n)产生正态分布的随机元素矩阵diag(x)产生矩阵x的对角阵说明:当eye、zeros、ones、rand、randn函数只有一个参数n时,则产生n×n的方阵。>>eye(3)ans=100010001>>eye(3,4)ans=100001000010>>zeros(3)ans=000000000>>ones(3,4)ans=111111111111>>a=magic(3)a=816357492>>diag(a)ans=852例如:》eye(2,3)ans=100010》zeros(2,3)ans=000000》ones(2,3)ans=111111》eye(2)ans=1001》zeros(2)ans=0000》ones(2)ans=11113.1.3数组的构建在MATLAB中数组可以看作行向量,即只有一行的矩阵,MATLAB创建数组可用以下特殊命令:1.冒号生成法(初值:步长:终值)>>0:0.4:2ans=00.40000.80001.20001.60002.0000初值=0,终值=2,步长=0.4,步长若省略,默认间隔1>>a=1:4;b=1:2:7;>>c=[ab]c=12341357>>d=[a910]d=12349102.linspace函数

linspace(a,b,n)差值=(b-a)/(n-1)>>a=linspace(0,1,4)a=00.33330.66671.0000初值=0,终值=1,元素个数=43.logspace函数

logspace(a,b,n)公比=10^((b-a)/(n-1))>>logspace(0,2,5)ans=1.00003.162310.000031.6228100.0000初值=100,终值=102,元素个数=5,公比=100.53.1.4从外部的数据文件中导入矩阵3.2矩阵的元素3.2.1矩阵元素的下标表示

1.全下标表示一个m×n矩阵A的第i行,第j列元素表示为A(i,j),即由行下标和列下标表示,行列数从1开始。注意:当给元素赋值时,如果超出矩阵范围,则自动扩充矩阵;当取值时,若超出矩阵范围,则提示错误。>>a=[12;34];>>a(1,2)=9;>>a(2,3)=8;>>aa=190348>>a(2,4)???Indexexceedsmatrixdimensions.2.单下标表示将矩阵的所有列按从左到右的顺序接成“一维长列”,然后对元素进行编号。一个m×n矩阵A的元素A(i,j)对应的下标为(j-1)*m+i。>>a=[123;456];>>a(1,2)ans=2>>a(3)ans=2>>a(5)=10a=12104563.2.2子矩阵

1.全下标表示(1)a([ij],[kl]):行数为i、j,列数为k、l的元素构成子矩阵(2)a(i:j,k:l):取行数为i~j,列数为k~l的元素构成的子矩阵(3)a(i:j,:):取行数为i~j,所有列的元素构成的子矩阵(4)a(end,k:j):取行数最大值,列数为k~j的元素构成的子矩阵2.单下标表示a([ij;kl]):取单下标为i、j、k、l的元素构成子矩阵。>>a=magic(5)a=17241815235714164613202210121921311182529>>a([12],[34])ans=18714>>a(1:2,3:5)ans=181571416>>a(1:2,:)ans=1724181523571416>>a(end,1:2)ans=1118>>a([13;45])(取单下标为1、2、3、5的元素构成子矩阵)ans=17410113.2.3矩阵元素的删除删除矩阵元素可以简单的将该元素赋值为空矩阵(用[]表示)。>>a=rand(3,4)a=0.45650.44470.92180.40570.01850.61540.73820.93550.82140.79190.17630.9169>>a(2)=[](把第2个元素赋值为空)a=

Columns1through60.45650.82140.44470.61540.79190.9218Columns7through110.73820.17630.40570.93550.91693.2.4矩阵元素的数量1.numel函数

n=numel(a):计算矩阵a中元素的总数2.size函数d=size(a)

:d=[mn],m为a的行数,n为a的列数[mn]=size(a):m为a的行数,n为a的列数m=size(a,dim):m为矩阵a的第dim维元素的数量(1表示列,2表示行)>>a=rand(2,3)a=0.28440.06480.58280.46920.98830.4235>>d=size(a)d=23>>m=size(a,2)(第2行元素的数量)m=3>>numel(a)ans=63.3矩阵与数组运算MATLAB算术运算矩阵算术运算数组算术运算矩阵算术运算:按照线性代数运算法则定义数组算术运算:按照元素逐个执行3.3.1矩阵的运算

+加法-减法*乘法^幂\左除/右除’转置1.矩阵的加减法矩阵的加减法是对应元素的加减法,只有当两个矩阵维数相同或者其中一个为标量时,才可以进行加减法运算。>>a=[12;34];>>b=[56;78];>>a+bans=681012>>3+aans=4567>>b-3ans=23452.矩阵的乘法矩阵的乘法使用“*”运算符,两个矩阵要相乘,只有当前一矩阵的列数与后一矩阵行数相等或者其中一个为标量时才能进行。>>a=[12;34];>>b=[567;8910];>>a*bans=212427475461>>b*a???Errorusing==>*Innermatrixdimensionsmustagree.>>3*aans=369123.矩阵的除法矩阵的除法有左除和右除两种,分别用“\”和“/”表示。通常矩阵除法可以用来求未知矩阵。若A*X=B,则X=A\B

若X*A=B,则X=B/A>>a=[12;34];>>b=[567;8910];>>c=a*bc=212427475461>>a\cans=5.00006.00007.00008.00009.000010.0000>>c/bans=1.00002.00003.00004.0000例:求解以下方程>>A=[132;223;311]A=132223311>>B=[1;10;7]B=1107>>A\Bans=2-344.矩阵的乘方矩阵的乘方使用“^”运算符,如A^P,当P为整数时,该指令运算结果可做如下解释:当P>0,表示方阵A直接自乘P次;当P<0,表示A的逆阵自乘P次后的结果,或者A自乘P次后的逆阵;当P=0,表示与A维数相同的单位阵。>>a=[12;34]a=1234>>a^2ans=7101522>>a^0ans=1001>>a^(-2)ans=5.5000-2.5000-3.75001.75005.矩阵的转置矩阵的转置使用“’”运算符,矩阵的转置就是将第i行第j列的元素和第j行第i列的元素进行互换。对于有复数元素的矩阵A,A’为共轭转置,A.’为非共轭转置。>>a=[12;34]a=1234>>a'ans=1324>>a=[1+i2+i;3+i4+i];>>a'ans=1.0000-1.0000i3.0000-1.0000i2.0000-1.0000i4.0000-1.0000i>>a.'ans=1.0000+1.0000i3.0000+1.0000i2.0000+1.0000i4.0000+1.0000i6.矩阵的逆(inv)在MATLAB中,使用函数inv计算矩阵的逆矩阵。A是可逆矩阵的充分必要条件是|A|≠0,即可逆矩阵是非奇异方阵。>>a=magic(3)a=816357492>>inv(a)ans=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.1028>>a*inv(a)ans=1.00000-0.0000-0.00001.000000.000001.0000>>a^(-2)ans=0.0293-0.0124-0.0124-0.01240.0293-0.0124-0.0124-0.01240.0293>>inv(a^2)ans=0.0293-0.0124-0.0124-0.01240.0293-0.0124-0.0124-0.01240.02937.方阵的行列式(det)方阵和行列式是两个不同的概念,n阶方阵是n2个数按一定方式排成的数表,n阶行列式则是这些数按一定的运算法则确定的一个数。在MATLAB中,求方阵的行列式的函数是det。>>a=magic(3)a=816357492>>det(a)ans=-3608.矩阵的特征值(eig)在MATLAB中,以函数eig计算矩阵的特征值,并以向量的形式存放。如果AX=λX存在非零解向量,则称λ为A的一个特征值,相应的非零解向量X称为与λ相对应的特征向量。>>G=[120;25-1;410-1];>>eig(G)ans=3.73210.26791.0000>>[p,q]=eig(G)p=-0.2440-0.91070.4472-0.33330.33330.0000-0.9107-0.24400.8944q=3.73210000.26790001.00009.矩阵的特征多项式(poly)在MATLAB中,以函数poly计算矩阵的特征多项式。设A为n阶方阵,如果λ和n维非零列向量X使关系式AX=λX成立,那么(A-λE)X=0称为矩阵A的特征方程,|A-λE|称为方阵A的特征多项式。>>a=[-211;020;-413];>>poly(a)ans=1-304>>roots(ans)ans=2.0000+0.0000i2.0000-0.0000i-1.0000>>eig(a)ans=-12210.矩阵的秩(rank)在MATLAB中,以函数rank计算矩阵的秩。设在矩阵A中存在一个不等于0的r阶子式D,且所有(r+1)阶子式全为0,那么称D为方阵A的最高阶非零子式,r为矩阵A的秩。>>a=magic(4)a=16231351110897612414151>>rank(a)ans=3>>det(a)ans=03.3.2数组的运算

.+加法.-减法.*乘法.^幂.\左除./右除.’转置数组的运算操作都是对元素逐个进行的。数组运算符与矩阵运算符的区别便是多一个小黑点。>>a=[123];>>b=[456];>>a.*bans=41018>>a.^2ans=149>>a.\bans=4.00002.50002.0000>>a=[1+j

2+j

3+j]a=1.0000+1.0000i2.0000+1.0000i

3.0000+1.0000i>>a.‘(转置)ans=1.0000+1.0000i2.0000+1.0000i3.0000+1.0000i>>a=ones(3);>>b=magic(3)b=816357492>>a*bans=151515151515151515>>a.*bans=816357492>>b^2(对矩阵求平方)ans=916767679167676791>>b.^2(对元素求平方)ans=6413692549168143.4矩阵关系运算与逻辑运算说明:(1)表达式输入:非0—“逻辑真”,0—“逻辑假”(2)表达式输出:1—“逻辑真”,0—“逻辑假”3.4.1关系运算两个维数相同的矩阵进行比较:相对应元素进行比较,结果为一个同维数矩阵;矩阵和标量进行比较:标量和矩阵中的每一个元素进行比较,结果为一个同维数矩阵。关系操作符<小于>=大于等于>大于==等于<=小于等于~=不等于>>a=[12;34];>>b=[13;44];>>a<bans=0110>>a>bans=0000>>a==bans=1001>>a==2ans=0100>>a<=bans=1111<、<=、>、>=仅比较实部,而==、~=同时比较实部和虚部。3.4.2逻辑运算如果A和B是维数相同的矩阵,或者其中一个是标量,则可以对矩阵进行逻辑运算。与A&B或and(A,B)或A|B或or(A,B)非~A或not(A)异或xor(a,b)>>a=[0101];>>b=[0110];>>and(a,b)ans=0100>>a&bans=0100>>a|bans=0111>>xor(a,b)ans=0011>>a&1ans=01013.5各种运算符的优先级

MATLAB对各种运算的优先级别做了规定。计算时,遵守的规定是较高优先级先于较低优先级,相同优先级遵从从左到右原则。优先级运算符最高()↓.’、’、.^、^↓~↓.*、*、./、/、.\、\↓+、-↓:↓<、<=、>、>=、~=、==↓&最低|>>x=5;y=3;z=2;>>X=ones(3);>>Y=magic(3)Y=816357492>>Z=zeros(3);>>a=x^2*(X'+Y)+za=2275217710215220212725277>>b=Y&Z+xb=111111111>>c=Y~=Z+X>=Y*xc=0000000003.6基本统计处理3.6.1查最大值(max)1.C=max(A)

返回矩阵A各列的最大值;若A为向量,返回该向量的最大值。2.[C,I]=

max(A)

将矩阵A各列中的最大元素值及其该元素的位置赋予行向量C与I,当A是向量时,C、I是标量。3.[C,I]=

max(A,[],dim)

按矩阵A的第dim维的方向查取最大的元素及其该元素的位置赋予向量C与I。若dim=1,按列操作;若dim=2,按行操作。>>x=[247483];>>m=max(x)m=8>>[m,n]=max(x)m=8n=5>>x=[351;946];>>max(x)ans=956>>[m,n]=max(x)m=956n=212>>[m,n]=max(x,[],1)m=956n=212>>[m,n]=max(x,[],2)m=59n=213.6.2查取最小值(min)

min函数用来求取数据序列中的最小值,使用方法和max函数相同。3.6.3求中值(median)1.Y=median(X):返回矩阵X各列元素的中值赋予行向量Y;若X为向量,Y为标量。2.Y=median(X,dim):将数组X的第dim维方向的元素求其中值赋予向量Y;若dim=1,按列操作(默认),若dim=2,按行操作。>>x=[351;946];>>median(x)ans=6.00004.50003.5000>>median(x,2)ans=363.6.4求和(sum)1.Y=sum(X):返回矩阵X各列元素的和赋予行向量Y;若X为向量,Y为标量。2.Y=sum(X,dim):将数组X的第dim维方向的元素的和赋予向量Y;若dim=1,按列操作,若dim=2,按行操作。>>x=[351;946];>>sum(x)ans=1297>>sum(ans)ans=28>>sum(x,2)ans=9193.6.5求平均值(mean)1.Y=mean(X):返回矩阵X各列元素的平均值赋予行向量Y;若X为向量,Y为标量。2.Y=mean(X,dim):将数组X的第dim维方向的元素的平均值赋予向量Y;若dim=1,按列操作,若dim=2,按行操作。>>a=[123;456]a=123456>>mean(a)ans=2.50003.50004.5000>>mean(a,2)ans=253.6.6求积(prod)1.Y=prod(X):返回矩阵X各列元素的积赋予行向量Y;若X为向量,Y为标量。2.Y=prod(X,dim):将数组X的第dim维方向的元素的积赋予向量Y;若dim=1,按列操作,若dim=2,按行操作。>>a=[123;456]a=123456>>prod(a)ans=41018>>prod(a,2)ans=61203.6.7排序(sort)1.Y=sort(X):将矩阵X的各列元素升序排列。2.Y=sort(X,dim):将矩阵X的第dim维元素升序排列;若dim=1,按列操作,若dim=2,按行操作。3.Y=sort(X,mode):按照mode模式对矩阵X进行排列,若mode为’ascend’表示升序排列,若mode为’descend’表示降序排列。>>x=[375;683;042];>>sort(x)ans=042373685>>sort(x,2)ans=357368024>>sort(x,2,'descend')ans=7538634203.7多项式运算多项式是形如p(x)=a0xn+a1xn-1+…+an-1x+an的式子,在MATLAB中,多项式用行向量表示P=[a0a1…an-1an]。3.7.1多项式的创建1.直接输入系数直接输入向量,MATLAB将按降幂自动将向量的元素分配给多项式各项的系数,该向量可以是行向量或列向量。>>P=[3501012];>>y=poly2sym(P)y=3*x^5+5*x^4+x^2+122.由多项式的根逆推多项式若已知某多项式的根,可用poly函数反推出与其相对应的多项式。>>root=[-4-2+2i-2-2i5]root=-4.0000

-2.0000+2.0000i-2.0000-2.0000i5.0000>>p=poly(root)p=13-16-88-160>>poly2sym(p)ans=x^4+3*x^3-16*x^2-88*x-1603.7.2多项式的运算1.多项式的求值(1)代数多项式求值:polyval函数

polyval(P,X)计算向量P为系数的多项式在点X的值,如果X是矩阵或者向量,该命令对X的每个元素都进行计算。(2)矩阵多项式求值:polyvalm函数

Y=polyvalm(P,X)计算向量P为系数的多项式在矩阵X的值,向量X必须为方阵。Y=P(1)×Xn+P(2)×Xn-1+…+P(N)×X+P(N+1)×I>>p=[123];>>poly2sym(p)ans=x^2+2*x+3>>a=[12;34];>>polyval(p,2)ans=11>>polyval(p,a)ans=6111827>>polyvalm(p,a)ans=12142133>>b=[123;456];>>polyvalm(p,b)???Errorusing==>polyvalmMatrixmustbesquare.2.多项式的根求多项式的根,即求使多项式为零的值。设多项式由行向量p表示,其系数按降序排列,使用roots函数计算多项式的根,格式为roots(p)。例:计算多项式x4+3x2+12x-7的根。>>p=[10312-7]p=10312-7>>roots(p)ans=0.7876+2.4351i0.7876-2.4351i-2.08720.5121>>polyval(p,ans)ans=1.0e-013*-0.0178+0.8793i-0.0178-0.8793i0.195403.多项式的四则运算(1)加法和减法如果两个多项式的向量阶数相同,可直接进行加减法计算;如果向量阶数不同,不能直接进行运算,需要在低阶多项式的前面补0,使其具有相同的阶数。>>a=[8228];b=[6161];>>poly2sym(a)ans=8*x^3+2*x^2+2*x+8>>poly2sym(b)ans=6*x^3+x^2+6*x+1>>c=a+bc=14389>>poly2sym(c)ans=14*x^3+3*x^2+8*x+9>>d=a-bd=21-47>>poly2sym(d)ans=2*x^3+x^2-4*x+7>>e=[245];>>d+e???Errorusing==>plusMatrixdimensionsmustagree.>>d+[0e]ans=23012>>poly2sym(ans)ans=2*x^3+3*x^2+12(2)乘法使用conv函数对多项式进行乘法计算,其格式为conv(a,b)例:计算(x3+2x2+3x+4)(5x3+6x2+7x+8)>>a=[1234];b=[5678];>>poly2sym(a)ans=x^3+2*x^2+3*x+4>>poly2sym(b)ans=5*x^3+6*x^2+7*x+8>>conv(a,b)ans=5163460615232>>poly2sym(ans)ans=5*x^6+16*x^5+34*x^4+60*x^3+61*x^2+52*x+32(3)除法使用deconv函数对多项式进行除法计算。

[q,r]=deconv(v,u):用多项式v除以多项式u,商赋予q,余数赋予r。

deconv是conv的逆运算,v=conv(u,q)+r。>>a=[1234];b=[5678];>>c=conv(a,b);>>[q,r]=deconv(c,a)q=5678r=0000000>>c=c+[0004321];>>[q,r]=deconv(c,a)q=56712r=0000-5-10-15(4)求导polyder(P):对多项式P求导,并返回求导结果polyder(P,Q):相当于polyder(P*Q)[p,q]=polyder(P,Q):求P/Q的导数,导数的分子存入p,分母存入q。例:计算多项式(3x2-2x+1)(4x2+5x+6)的导数>>a=[3-21];b=[456];>>polyder(a,b)ans=482124-7所以所求结果为:48x3+21x2+24x-7例:计算有理分式1/(x2+5)的导数>>a=[1];b=[105];>>[p,q]=polyder(a,b)p=-20q=1010025所以结果为:-2x/(x4+10x2+25)814.1二维图形的绘制4.1.1基本绘图命令在MATLAB中,plot是绘制二维图形的最基本函数,它针对向量或矩阵的列绘制曲线。在使用plot之前,必须首先定义好曲线上每一点的x及y坐标。plot命令有以下使用格式:1.plot(x,y):以x元素为横坐标,y元素为纵坐标绘制曲线。2.plot(x1,y1,x2,y2…):绘制多条曲线。82例:绘制正弦波型>>t=0:0.1:2*pi;>>y=sin(t);>>plot(t,y)83例:绘制正弦和余弦波形>>t=0:0.1:2*pi;>>y1=sin(t);>>y2=cos(t);>>plot(t,y1,t,y2)843.plot(x):当x为一向量时,以x元素的值为纵坐标,x的序号为横坐标绘制曲线。(1)如果x为实数向量,其元素个数为m,则plot(x)等价于plot(y,x),y=1:m。例:>>x=[13639];>>plot(x)85(2)如果x为实数矩阵,则把x按列方向分解为几个列向量,分别进行绘制。>>x=[123;567;123];>>plot(x)(1,5,1)(2,6,2)(3,7,3)86(3)如果x为一复数向量,plot(x)等价plot(real(x),imag(x))。

>>a=[1+2i4+3i2+6i;2+3i3+8i2.3+3i];>>plot(a)(1,2)(2,3)(4,3)(3,8)(2.3,3)(2,6)874.1.2曲线的色彩、线型和数据点形

plot(x,y,s):绘制不同色彩、线型和数据点形的图形,其中s为一个字符串。1.色彩和线型线型-:-.--实线(默认)点线点划线虚线色彩bgrcmykw蓝绿红青红紫黄黑白默认设置:曲线一律用“实线线型”;不同曲线将按色彩的前7种颜色循环着色,依次为蓝、绿、红、青、红紫、黄、黑等。882.数据点形符号含义符号含义.实心黑点v朝下三角形o空心圆圈^朝上三角形x叉字符<朝左三角形+十字符>朝右三角形*星号p五角星s正方形h六角形d菱形符89例:用不同的颜色和线型绘制曲线。>>x=0:0.1:2*pi;>>y1=sin(x);>>y2=cos(x);>>plot(x,y1,‘b-.’,x,y2,‘gh’)(绿色六角形)904.1.3设置坐标轴和文字标注1.设置坐标轴命令含义axis([xminxmaxyminymax])设定坐标范围axisauto将坐标系统返回到自动缺省状态axissquare将当前图形设置为方形axisequal纵、横坐标采用等长刻度axisoff关闭坐标系统axison显示坐标系统912.设置分格线和坐标框(1)使用grid命令显示分格线gridon %画出分格线gridoff %不画分格线grid %是否画分格线的切换指令(2)使用box命令显示坐标框boxon %使当前坐标框呈封闭形状boxoff %使当前坐标框呈开启形状box %在以上命令间切换92gridonboxongridoffboxoff933.文字标注(1)添加图名title(‘图形标题’)(2)添加坐标轴名xlabel(‘x轴标记’)ylabel(‘y轴标记’)(3)添加图例legend(s,pos)legendoff %擦除当前图中的图例说明:s为图例中的文字注释;pos表示图例在图中的位置的指令符。pos有1、2、3、4、0、-1共六种选项。其中1是默认。94例:文字标注例题>>x=linspace(-5,5,100);>>y1=100*sin(x);>>y2=x.^4-22*x.^2-6*x+10;>>plot(x,y1,x,y2);>>title('文字标注例题')>>xlabel('x的取值范围');>>ylabel('y的值');>>legend('sinx','x^4-22x^2-6x+10');9596(4)添加文字注释text(X,Y,’文字注释’); %在坐标(X,Y)坐标处添加文字注释gtext(’文字注释’) %利用鼠标添加文字注释例:>>x=0:0.1:2*pi;>>y=sin(x);>>plot(x,y)>>text(pi,sin(pi),'y=sinx')97984.1.4多窗口绘制1.同一窗口多个子图

subplot(m,n,p):将当前图形窗口分成m*n个绘图区,即每行n个,共m行。区号按行优先编号,且选定第p个区为当前活动区。2.多个图形窗口

figure(n):产生新的图形窗口,并且该窗口为活动窗口。若需要,还可以返回该窗口的识别号码,称该号码为句柄。用户可以通过句柄激活或者关闭某图形窗口,axis、xlabel、ylabel、title等命令也只对活动窗口有效。99>>x=0:0.1:2*pi;>>y_sin=sin(x);>>y_cos=cos(x);>>y_tan=tan(x);>>y_ctan=cot(x);>>subplot(2,2,1)>>plot(x,y_sin);>>title('sin(x)');>>axis([02*pi-11]);>>subplot(2,2,2)>>plot(x,y_cos);>>title('cos(x)');>>axis([02*pi-11]);>>subplot(2,2,3)>>plot(x,y_tan);>>title('tan(x)');>>axis([02*pi-8080]);>>subplot(2,2,4)>>plot(x,y_ctan);>>axis([02*pi-8080]);>>title('ctan(x)');例:在同一窗口内用四个子图分别绘制正弦、余弦、正切、余切函数。100101例:用两个窗口分别绘制正弦、余弦函数。>>x=0:0.05:2*pi;>>y_sin=sin(x);>>y_cos=cos(x);>>H1=figure(1);>>plot(x,y_sin);>>figure(2);>>plot(x,y_cos);>>figure(H1);

>>title('y=sin(x)');1023.同一窗口多次重绘若在已存在图形窗口中继续添加新的内容,可以使用图形保持命令hold。holdon:使当前内容保留,绘制新内容;holdoff:使当前内容不具备不被刷新的性质;hold:当前内容是否具有刷新性质的开关。例:在同一窗口内绘制正弦与余弦波形>>x=0:0.05:2*pi;>>y_sin=sin(x);>>y_cos=cos(x);>>plot(x,y_sin,'b');>>holdon>>plot(x,y_cos,'g');>>legend('sin(x)','cos(x)')>>holdoff1034.1.5二维特殊图形1.极坐标图

polar(theta,rho):theta为极坐标角度,rho为极坐标半径。>>theta=0:0.01:2*pi;>>rho=sin(theta).*exp(theta);>>polar(theta,rho,'-k')>>title('polarplot')104>>t=0:0.01:2*pi;>>s=abs(sin(2*t).*cos(2*t));>>polar(t,s,'r+')1052.阶梯图形

stairs(x,y)可以绘制阶梯图形。>>x=-2*pi:0.5:pi*2;>>y=sin(x);>>stairs(x,y)>>title('stairsplot')1063.条形图形

bar(x,y)可以绘制条形图形,适用于少量且离散的资料。>>x=-2*pi:0.5:pi*2;>>y=sin(x);>>bar(x,y)>>title(‘barplot')1074.填充图形

fill(x,y,’c’):绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符‘c’规定填充颜色。>>t=(1/16:1/8:1)*2*pi;>>x=sin(t);>>y=cos(t);>>fill(x,y,'r')>>axissquare1085.扇形图形(pie)(1)绘制扇形图形,并可以附加说明。>>x=[1234];>>pie(x)>>pie(x,{‘east',‘south'

温馨提示

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

评论

0/150

提交评论