《Matlab语言基础-Matlab教程.ppt》由会员分享,可在线阅读,更多相关《Matlab语言基础-Matlab教程.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Matlab语言基础1 1)启动与退出)启动与退出 双击双击matlabmatlab图标,进入图标,进入matlabmatlab命令窗口(命令窗口(command windowcommand window),即即可输入命令语句,开始运算,或从开始菜单的程序中单击可输入命令语句,开始运算,或从开始菜单的程序中单击matlabmatlab进入。进入。单击单击filefile菜单中的菜单中的Exit,Exit,或在命令窗口输入或在命令窗口输入ExitExit并回车即可退出。并回车即可退出。2 2)语句形式)语句形式 变量变量=表达式表达式 输入一个语句并以回车结束,则在工作区显示计算结果,语句以输入
2、一个语句并以回车结束,则在工作区显示计算结果,语句以“;”结束,只进行计算但不显示结果。太长的表达式可以用续行号结束,只进行计算但不显示结果。太长的表达式可以用续行号将将其延续到下一行。一行可以写几个语句,它们之间用逗号或句号分开。其延续到下一行。一行可以写几个语句,它们之间用逗号或句号分开。例:输入例:输入a=1a=13)MATLAB3)MATLAB中变量的命名规则是:中变量的命名规则是:(1 1)变量名必须是不含空格的单个词;)变量名必须是不含空格的单个词;(2 2)变量名区分大小写;)变量名区分大小写;(3 3)变量名最多不超过)变量名最多不超过1919个字符;个字符;(4 4)变量名必
3、须以字母打头,之后可以是任意字母、数字或下划线,)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号变量名中不允许使用标点符号.(5 5)特殊变量)特殊变量ansans:用于结果的缺省变量名:用于结果的缺省变量名 i i、j j:虚数单位:虚数单位pipi:圆周率:圆周率 narginnargin:函数的输入变量个数:函数的输入变量个数epseps:计算机的最小数:计算机的最小数 nargoutnargout:函数的输出变量个数:函数的输出变量个数infinf:无穷大:无穷大 realminrealmin:最小正实数:最小正实数realmaxrealmax:最大
4、正实数:最大正实数 nannan:不定量:不定量flopsflops:浮点运算数:浮点运算数4)数学运算符号及标点符号+加法运算,适用于两个数或两个同加法运算,适用于两个数或两个同阶阶矩矩阵阵相加相加.减法运算减法运算*乘法运算乘法运算.*.*点乘运算点乘运算/除法运算除法运算././点除运算点除运算 乘乘幂幂运算运算.点乘点乘幂幂运算运算 反斜杠表示左除反斜杠表示左除.(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果.(2)“%”后面所有文字为注释,M文件中(ctr+R全注释,ctr+T全取消).(3)“.”表示续行.5)数学函数函数函数
5、函数名称函数名称函数函数函数名称函数名称sin(x)sin(x)正弦函数正弦函数asin(x)asin(x)反正弦函数反正弦函数cos(x)cos(x)余弦函数余弦函数acos(x)acos(x)反余弦函数反余弦函数tan(x)tan(x)正切函数正切函数atan(x)atan(x)反正切函数反正切函数abs(x)abs(x)绝对值绝对值函数函数max(x)max(x)最大最大值值函数函数min(x)min(x)最小最小值值函数函数sun(x)sun(x)求和函数求和函数sqrt(x)sqrt(x)开平方开平方epx(x)epx(x)以以e e为为底指数底指数log(x)log(x)自然自然对
6、对数数Log10(x)Log10(x)以以1010为为底底对对数数sign(x)sign(x)符号函数符号函数fix(x)fix(x)取整函数取整函数x=logspace(first,last,n)创建从开始,到结束,有n个元素的对数分隔行向量.1、创建简单的数组、创建简单的数组x=a b c d e f 创建包含指定元素的行向量x=first:last 创建从first开始,加1计数,到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,last结束的行向量x=linspace(first,last,n)创建从first开始,到l
7、ast结束,有n个元素的行向量6)数组 2、数组元素的访问数组元素的访问(3)直接使用元素编址序号:直接使用元素编址序号:x(a b c d)表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a)x(b)x(c)x(d).(2)访问一块元素访问一块元素:x(a:b:c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.(1)访问一个元素访问一个元素:x(i)表示访问数组x的第i个元素.MATLAB(shuzu1)MATLAB(shuzu2)3 3、数组的方向、数组的方向 前面例子中的数组都是一行数列,是行方向分布的前面例子中的数组都是一
8、行数列,是行方向分布的.称之为称之为行向量行向量.数组也可以是数组也可以是列列向量向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示.产生列向量有两种方法:产生列向量有两种方法:直接产生直接产生 例例 c=1;2;3;4 转置产生转置产生 例例 b=1 2 3 4;c=b 说明:以说明:以空格空格或或逗号逗号分隔的元素指定的是不同列的元素,而以分隔的元素指定的是不同列的元素,而以分号分号分隔的元素指分隔的元素指定了不同行的元素定了不同行的元素.4、数组的运算、数组的运算 (1)标量标量-数组运算数组运算 数组
9、对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算减、乘、除、乘方运算.设:设:a=a1,a2,an,c=标量标量则:则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c=a1/c,a2/c,an/c(右除)右除)a.c=c/a1,c/a2,c/an(左除)左除)a.c=a1c,a2c,anc c.a=ca1,ca2,can MATLAB(shuzu3)(2)数组数组-数组运算数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按当两个数组有相同
10、维数时,加、减、乘、除、幂运算可按元素对元素元素对元素方式进方式进行的,不同大小或维数的数组是不能进行运算的行的,不同大小或维数的数组是不能进行运算的.设:设:a=a1,a2,an,b=b1,b2,bn则:则:a+b=a1+b1,a2+b2,an+bn a.*b=a1*b1,a2*b2,an*bn a./b=a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbnMATLAB(shuzu4)7)矩阵1、矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行.除了分号,在输入矩阵时,按Enter键也表示开始一新行.输入矩阵时,严
11、格要求所有行有相同的列例m=1 2 3 4;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 3特殊矩阵的建立:a=产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.b=zeros(m,n)产生一个m行、n列的零矩阵c=ones(m,n)产生一个m行、n列的元素全为1的矩阵d=eye(m,n)产生一个m行、n列的元素的单位矩阵e=randn(m,n)产生一个m行、n列正态分布随机矩阵MATLAB(matrix1)2矩阵中元素的操作(1)矩阵A的第r行:A(r,:)(2)矩阵A的第r列:A(:,r)(3)依次提取矩阵A的每一列,将A拉伸为一个
12、列向量:A(:)(4)取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2,j1:j2)(5)以逆序提取矩阵A的第i1i2行,构成新矩阵:A(i2:-1:i1,:)(6)以逆序提取矩阵A的第j1j2列,构成新矩阵:A(:,j2:-1:j1)(7)删除A的第i1i2行,构成新矩阵:A(i1:i2,:)=(8)删除A的第j1j2列,构成新矩阵:A(:,j1:j2)=(9)将矩阵A和B拼接成新矩阵:A B;A;BMATLAB(matrix2)3矩阵的运算(1)标量-矩阵运算:同标量-数组运算。(2)矩阵-矩阵运算:1 元素对元素的运算,同数组-数组运算 2矩阵运算:矩阵加法:A+B 矩阵乘
13、法:A*B矩阵转置:方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:V,D=eigA 求矩阵的范数:norm(A,1)计算矩阵A的1范数 norm(A,2)计算矩阵A的2范数norm(A,inf)计算矩阵A的无穷范数 MATLAB(matrix3)8)关系与逻辑运算1、关系操作符关系操作符关系操作符说说明明 小于小于=大于大于=大于或等于大于或等于=等于等于=不等于不等于2、逻辑运算符逻辑逻辑操作符操作符说说明明 与与或或非非9)程序设计Matlab有两种工作方式:1)人机交互的命令行指令操作方式,即在命令窗口每输入一条命令,则立即运行该命令得到结果。2)进行控制流的程
14、序设计,即编制一种可存储的以M为扩展名的文件(简称M文件)。在Matlab下执行该程序M文件分两种:(1)命令式M文件:也称脚本文件,就是将Matlab的一系列命令按顺序编制成一个文本文件,文件名后缀为M,然后在command window 下运行文件名,则按顺序执行文件中的命令。文件建立方法:1.在Matlab中,点:File-New-M-file 2.在编辑窗口中输入程序内容 3.点:File-Save,输入文件名,后缀为M,存盘例:建立命令式脚本文件qwe.m在编辑窗口输入如下命令:a=1b=2;%行尾加分号,注意运行结果。c=a+b然后存盘。在command window 下输入qwe
15、.m并回车。(2)函数式M文件:MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件.函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为:function 因变量名=函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量.M文件建立方法:1.在Matlab中,点:File-New-M-file2.在编辑窗口中输入程序内容3.点:File-Save,存盘,M文件名必须与函数名一致。注:Matlab的应用程序也以M文件保存。例:定义函数 f(x1,x2)=100(x2-x12)2+
16、(1-x1)21.建立M文件:fun.mfunction f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)22.可以直接使用函数fun.m例如:计算 f(1,2),只需在Matlab命令窗口键入命令:x=1 2fun(x)MATLAB(fun)10)控制语句MATLAB提供四种决策或控制流结构:for循环、while循环、if-else-end结构 switch-case结构。1、for循环:允许一组命令以固定的和预定的次数重复for x=arraycommandsend在for和end语句之间的命令串commands按数组(array)中的每一列执行一次.在每一次迭代中
17、,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)例:求1+2+100先建立脚本文件:mysum.mmysum=0;for i=1:1:100 mysum=mysum+i;end存盘,然后在命令窗口输入mysum,并回车。2、While循环与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.while expressioncommandsend只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串commands.例 求1+2+100建立脚本文件:mysum.mmysum=0;i=1;while(i=100)
18、mysum=mysum+i;i=i+1;end 存盘,然后在命令窗口输入mysum,并回车。3、If-Else-End结构(1)有一个选择的一般形式是:if expressioncommandsend如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串commands.(2)有三个或更多的选择的一般形式是:if(expression1)commands1elseif(expression2)commands2elseif(expression3)commands3 end4、switch-case结构 witch-case语句的一般表达式:Switch ca
19、se 选择判断值1 选择判断语句1 case 选择判断值2 选择判断语句2 .Otherwise 判断执行语句End例子:Switch code case-1 disp(error)case 0 disp(write in English)case 1 disp(write in Chinese)Otherwise disp(write in French)EndMATLAB提供三种中断控制流结构:continue break return。Continue:循环中断一次,后面循环继续;Break:循环中断,后面循环不继续,后面程序继续;return:循环中断,后面循环不继续,后面程序不继续。
20、function show_continue_break_returnfor i=1:4 if i=2 continue end iendfor j=i:4 jendiiii=1for i=1:4 if i=2 break end iendfor j=i:4 jendiiii=2for i=1:4 if i=2 return end iendfor j=i:4 jEndiiii=3 先建立先建立M文件文件fun2.m定义函数定义函数f(x),再在),再在Matlab命令窗口输命令窗口输入入fun2(2),fun2(0.5),fun2(-1)即可。即可。MATLAB(fun2)MATLAB(while1)3、设银行年利率为、设银行年利率为11.25%。将。将10000元钱存入银行,问多长时间会连本带元钱存入银行,问多长时间会连本带利翻一番?利翻一番?2、对、对n=1,2,10,求求xn=的值的值MATLAB(for1)练习二