MATLAB常用基本语法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二部分MATLAB基本语法1.变量及其赋值2.矩阵及其元素的赋值3.矩阵的初等运算4.逻辑判断及流程控制5.绘图6.M文件和程序调试作业MATLAB语句形式变量=表达式;%注释=将表达式的值赋予变量。当键入回车键该语句被执行。语句执行之后,窗口自动显示出执行结果。;结果不被显示,但它依然被赋值并在MATLAB工作空间中分配了内存。,隔开写在一行的多行命令。%后为注释,不执行。.1变量及其赋值标识符变量名,常量名19个字符如变量x,常量pi函数名,文件名8个字符如查看数据类型的whos函数英文字母(区分大小写)、阿拉伯数字和下划线组成,第一个字符必须是英文字母。数NUMBERS数据格式:双精度二进制输出格式:8种COMMAND:format如formatlong指令的含义是用15位数字表示数据的输出格式。复数虚数Imaginarynumbers用i或j做后缀如1+2i;标准变量和常量pi3.14159265…i或j虚数单位inf无穷大运算符Operators+addition,–subtraction*multiplication/division,\leftdivision^powerrelationaloperators:,,=,=,==logicaloperators:&(and),|(or),~(not),xor异或【例.1】简单的算术运算结果(1)用键盘在MATLAB指令窗中输入以下内容(12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter】键,该指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans=2【例.2】指令的续行输入(以下格式在除Notebook外的MATLAB环境中可运行)S=1-1/2+1/3-1/4+1/5-1/6...+1/7-1/8S=0.6345空一格常用数学函数abs(x),sin(),cos(),tan(),asin(),acos(),atan()sqrt(),exp(),imag()(复数虚部),real()(复数实部),log(),log10(),conj()(共扼复数).2矩阵及其元素的赋值向量的生成:用线性等间距生成向量矩阵[start:step:end]其中start为起始值,step为步长,end为终止值。当步长为1时可省略step参数;另外step也可以取负数。》a=1:2:10ans=13579冒号TheColonOperator1:10%增量为1ans=12345678910100:-7:50ans=100938679726558510:pi/4:pians=00.78541.57082.35623.1416或采用更为形象的描述方法:a=[a11a12a13;a21a22a23;a31a32a33]MATLAB输入数组有以下基本规则:(1)数组元素列入方括号[]中;(2)每行内的元素间用逗号或空格分开;(3)行与行之间用分号或回车键(Enter)隔开。注意:以上几种形式中,aij可以是数值、变量、表达式或字符串。如果是变量或表达式,则执行该语句前一定要首先通过用户输入或通过前面执行的表达式对变量或由变量组成的表达式进行赋值。表达式和变量可以任意组合形式出现。如果是字符串,则每一行中的字母个数应相同。例如:A=[163213;510118;96712;415141]A=16594310615211714138121A=16594310615211714138121求和sum,转置transpose,对角线diagsum(A)%计算A阵各列元素的和ans=34343434A=diag(A)%获取主对角线diagonal的元素16594310615211714138121ans=161071sum(diag(A))%求对角线上元素之和ans=34下标SubscriptsA(i,j)表示A的i行j列,例如A(4,2)就是15。A(1,4)+A(2,4)+A(3,4)+A(4,4)%求4列的和ans=34单下标A(k)用于二维矩阵,则将矩阵视为一个长列向量,从第1列的A(1,1)开始的各列元素,从上到下一列一列的排顺序。如A(8)就是A(4,2)的另一种表示方法。矩阵下标里的冒号sum(A(1:4,4))%计算第4列前4行元素sum(A(:,end))%如果只要冒号本身,则代表矩阵行或列的所有元素,end代表最后一行或列。ans=34sum(A(1:16))/4ans=34基本矩阵zeros:全0阵ones:全1阵rand:均分布随机矩阵randn正态分布随机矩阵矩阵的逆inv(A)A=[123;149;8101]inv(A)ans=8.6000-2.8000-0.6000-7.10002.30000.60002.2000-0.6000-0.2000其他输入数据方法load用TXT文本编辑数据,并存为magik.dat16.03.02.013.05.010.011.08.09.06.07.012.04.015.014.01.0用loadmagik.dat.3矩阵的初等运算1、转置对于实矩阵用(')符号或(.')求转置结果是一样的;对于含复数的矩阵,(')则将同时对复数进行共轭处理,而(.')则只是将其排列形式进行转置。》a=[123;456]'a=》a=[123;456].'a=123456123456对于复数》b=[1+2i2-7i]'b=1.0000-2.0000i2.0000+7.0000i》b=[1+2i2-7i].'b=1.0000+2.0000i2.0000-7.0000i2、四则运算与幂运算点运算+、-、*、\、/、^;.*、.\、./、.^·只有维数相同的矩阵才能进行加减运算。·只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。·a\b运算等效于求a*x=b的解(a-1b);·a/b等效于求x*b=a的解((a’\b’)’)。·只有方阵才可以求幂。·点运算是两个维数相同矩阵对应元素之间的运算,在有的教材中也定义为数组运算。【例.5】求解下列方程组:2X1+3X2=74X1+X2=9a=[23;41],b=[7;9];x=a\bx=21此例对于理解线性方程组的求解过程十分重要!a=[12;34];b=[35;59]注意比较左右相似算式的不同!3、矩阵的大小[m,n]=size(A,x):返回矩阵的行列数m与n,当x=1,则只返回行数m,当x=2,则只返回列数n。length(A)和max(size(A)):返回行数或列数的最大值。【例.6】a=[123;345][m,n]=size(a)m=2n=3length(a)ans=3max(size(a))ans=3xxxx21222324mmx和mmm点运算:本节介绍MATLAB中的点(.)运算。在MATLAB中点运算是对同阶矩阵中逐个元素进行的算术运算。考虑下面的(3×4)阶矩阵:x11x12x13x14m11m12m13m1421222324x31x32x33x34m31m32m33m34x11m11x12m12x13m13x14m14zmxmx21m21x22m22x23m23x24m24x31m31x32m32x33m33x34m34x1111121213131414即x/mx/mx/mx/mx11m11x12m12x13m13x14m14mxmxmxm点除、点指数:/mx/mx/mx/mzdx/m2121222223232424x31/m31x32/m32x33/m33x34/m34zdxmx21m21x22m22x23m23x24m24x3131323233333434例子:为说明指数的点运算,考虑计算2.^j。其中j=1,2,…,8。程序为:x=1:8;y2x结果为:248163264128256字符串命令字符串要用单引号,并用括号括在里面。如:disp(‘textstring’)%disp字符串显示命令textstring在单引号里边的字符串可以作为矢量或矩阵的元素。使用disp命令或输入变量名就可以显示它们表示的字符串。如:a=['thisisadisp(a)a=thisisatextstring';'textstring'].4逻辑判断及流程控制1、关系运算符relationaloperations在处理关系运算时,运算元只有两个值即0和1。关系成立,结果为1,关系不成立时,结果为0。假设有:A=[12-1-5]B=[0231](注意)小于ABans=[0011];A1ans=[0011]大于ABans=[1000];A1ans=[0100]=小于等于A=Bans=[0111]=大于等于A=Bans=[1100]==等于A==Bans=[0100];A==1ans=[1000]~=不等于A~=Bans=[1011];A~=1ans=[0111]2、逻辑运算符logicaloperations在处理逻辑运算时,运算元只有两个值即0和1,所以如果指定的数为0,MATLAB认为其为0,而任何数不等于0,则认为是1。设有:A=[5-40-0.5];B=[0109]&与|或A&B=[0101]A&1=[1101]~非~A=[0010]~1=0A|B=[1101]A|1=[1111]3、流程控制FlowControlifstatementsswitchstatementsforloopswhileloopsbreakstatements3.1、if,else,elseif语句(1)if逻辑表达式执行语句end当逻辑表达式的值为真时,执行该结构中的执行语句,执行完之后继续向下进行;若为假,则跳过结构中的内容,向下执行。else和elseif(2)ifelse逻辑表达式执行语句1执行语句2(3)ifelseifend逻辑表达式1执行语句1逻辑表达式2执行语句2endA=4,B=5;ifAB'greater'elseifAB'less'elseifA==B'equal'elseerror('Unexpectedsituation')endans=less3.2、while循环语句while表达式循环体end若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。3.3、for循环语句基本格式:for循环变量=起始值:步长:终止值循环体;end步长缺省值为1。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。〖例〗如果用户想由MATLAB求出1+2+...+100的值,可以作下列的循环:mysum=0;fori=1:1:100;mysum=mysum+i;end;mysummysum=5050在上面的式子中,可以看到for循环语句中s3的值为1。在MATLAB实际编程中,如果s3的值为1,则可以在该语句中省略,故该语句可以简化成fori=1:100。在实际编程中,i=1:100;mysum=sum(i)。在这一语句中,首先生成了一个向量

1 / 84
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功