您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > matlab教程第一讲
第一讲MatLab简介及基本运算一、MatLab简介MATLAB名字由MATrix和LABoratory两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的CleveMoler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。经几年的校际流传,在Little的推动下,由Little、Moler、SteveBangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国NationalInstruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色:功能强的数值运算-在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。先进的资料视觉化功能-MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。高阶但简单的程式环境-作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用FORTRAN或C的几分之一,而且不需要编译(compile)及联结(link)即能执行,同时包含了更多及更容易使用的内建功能。开放及可延伸的架构-MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使MATLAB成为使用者所须要的环境。丰富的程式工具箱-MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用MapleV的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。二、MatLab界面MATLAB系统命令命令含义help在线帮助helpwin在线帮助窗口helpdesk在线帮助工作台demo运行演示程序ver版本信息readme显示Readme文件who显示当前变量whos显示当前变量的详细信息clear清空工作间的变量和函数pack整理工作间的内存load把文件调入变量到工作间save把变量存入文件中quit/exit退出MATLABwhat显示指定的matlab文件lookfor在HELP里搜索关键字which定位函数或文件path获取或设置搜索路径echo命令回显cd改变当前的工作目录pwd显示当前的工作目录dir显示目录内容unix执行unix命令dos执行dos命令!执行操作系统命令computer显示计算机类型在MATLAB系统中使用帮助方式有三:1.是利用help指令,如果你已知要找的题材(topic)为何的话,直接键入helptopic。所以即使身旁没有使用手册,也可以使用help指令查询不熟悉的指令或是题材之用法,例如helpsqrt2.是利用lookfor指令,它可以从你键入的关键字(key-word)(即使这个关键字并不是MATLAB的指令)列出所有相关的题材,例如lookforcosine,lookforsine。3.是利用指令视窗的功能选单中的Help,从中选取TableofContents(目录)或是Index(索引)。三、基本数学运算在MATLAB下进行基本数学运算,只需将运算式直接打在提示号后面,并按入Enter键即可。MATLAB将计算的结果以ans显示。【例】求23)]47(212[的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容(12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans=2我们也可给运算式的结果设定一个变量x:x=(5*2+1.3-0.8)*10^2/25x=42变量x的值可以在下个语句中调用:y=2*x+1y=85变量命名规则:1.变量名的大小写是敏感。2.变量的第一个字符必须为英文字母,而且不能超过31个字符。3.变量名可以包含下连字符、数字,但不能为空格符、标点。系统预定义的变量ans预设的计算结果的变量名epsMATLAB定义的正的极小值=2.2204e-16pi内建的π值(=3.1415926...)inf∞值,无限大()NaN无法定义一个数目()i或j虚数单位i=j=1nargin函数输入参数个数nargout函数输出参数个数realmax最大的正实数realmin最小的正实数flops浮点运算次数而键入clear则是去除所有定义过的变量名称。表达式MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续),例如:1*2+3*4+5*6+7*8+9*10+11*12+...13*14+15*16ans=744若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y=1034*22+3^5;若要显示变数y的值,直接键入y即可:yy=22991MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。例:计算圆面积Area=,半径r=2,则可键入r=2;%圆半径r=2,area=pi*r^2;%计算圆面积areaarea=12.5664MATLAB提供基本的算术运算有:加(+)、减(-)、乘(*)、除(/)、幂次方(^),范例为:5+3,5-3,5*3,5/3,5^3MATLAB常用数学函数三角函数和双曲函数名称含义名称含义名称含义sin正弦csc余割atanh反双曲正切cos余弦asec反正割acoth反双曲余切tan正切acsc反余割sech双曲正割cot余切sinh双曲正弦csch双曲余割asin反正弦cosh双曲余弦asech反双曲正割acos反余弦tanh双曲正切acsch反双曲余割atan反正切coth双曲余切atan2四象限反正切acot反余切asinh反双曲正弦sec正割acosh反双曲余弦指数函数名称含义名称含义名称含义expE为底的指数log1010为底的对数pow22的幂log自然对数log22为底的对数sqrt平方根复数函数名称含义名称含义名称含义abs绝对值conj复数共轭real复数实部angle相角imag复数虚部圆整函数和求余函数名称含义名称含义ceil向+∞圆整rem求余数fix向0圆整round向靠近整数圆整floor向-∞圆整sign符号函数mod模除求余矩阵变换函数名称含义名称含义fiplr矩阵左右翻转diag产生或提取对角阵fipud矩阵上下翻转tril产生下三角fipdim矩阵特定维翻转triu产生上三角Rot90矩阵反时针90翻转det行列式的计算其他函数名称含义名称含义min最小值max最大值mean平均值median中位数std标准差diff相邻元素的差sort排序length个数norm欧氏(Euclidean)长度sum总和prod总乘积dot内积cumsum累计元素总和cumprod累计元素总乘积cross外积例:y=sin(10)*exp(-0.3*4^2)y=-0.0045【例】复数ieziziz63212,21,43表达,及计算321zzzz。(1)经典教科书的直角坐标表示法z1=3+4iz1=3.0000+4.0000i(2)采用运算符构成的直角坐标表示法和极坐标表示法z2=1+2*i%运算符构成的直角坐标表示法z3=2*exp(i*pi/6)%运算符构成的极坐标表示法z=z1*z2/z3z2=1.0000+2.0000iz3=1.7321+1.0000iz=0.3349+5.5801i【例】复数矩阵的生成及运算A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i]C=A*BA=1.0000-5.0000i3.0000-8.0000i2.0000-6.0000i4.0000-9.0000iB=1.0000+5.0000i2.0000+6.0000i3.0000+8.0000i4.0000+9.0000iC=1.0e+002*0.99001.1600-0.0900i1.1600+0.0900i1.3700【例】求上例复数矩阵C的实部、虚部、模和相角。C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi%以度为单位计算相角C_real=99116116137C_imag=0-990C_magnitude=99.0000116.3486116.3486137.0000C_phase=0-4.43654.43650【例】指令行操作过程示例。(1)若用户想计算51)3.0sin(21y的值,那末用户应依次键入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5))(2)按【Enter】键,该指令便被执行,并给出以下结果y1=0.5000若又想计算51)3.0cos(22y,可以简便地用操作键获得指令,具体办法是:先用键调回已输入过的指令y1=2*sin(0.3*pi)/(1+sqrt(5));然后移动光标,把y1改成y2;把sin改成cos便可。即得y2=2*cos(0.3*pi)/(1+sqrt(5))y2=0.3633注:设置精度值。t=2.8957e-007digits(8)%精确到小数点后8位sym(t,'d')ans=.28957372e-6四、阵列与矩阵MATLAB的运算事实上是以阵列(array)及矩阵(matrix)方式在做运算.阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式.宣告一变量为阵列或是矩阵时,须用中括号[]将元素置于其中。阵列为一维元素所构成,而矩阵为多维元素所组成.例如:»x=[12345678];%一维1x8阵列【例】简单矩阵987654321A的输入步骤。(1)在键盘上输入下列内容:(以;区隔各列的元素)A=[1,2,3;4,5,6;7,8,9](2)按【Enter】键,指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果:A
本文标题:matlab教程第一讲
链接地址:https://www.777doc.com/doc-2882151 .html