您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 数学建模02第二章Matlab语言基础-Matlab教程
Matlab语言基础1)启动与退出双击matlab图标,进入matlab命令窗口(commandwindow),即可输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。2)语句形式变量=表达式输入一个语句并以回车结束,则在工作区显示计算结果,语句以“;”结束,只进行计算但不显示结果。太长的表达式可以用续行号…将其延续到下一行。一行可以写几个语句,它们之间用逗号或句号分开。例:输入a=13)MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.(5)特殊变量ans:用于结果的缺省变量名i、j:虚数单位pi:圆周率nargin:函数的输入变量个数eps:计算机的最小数nargout:函数的输出变量个数inf:无穷大realmin:最小正实数realmax:最大正实数nan:不定量flops:浮点运算数4)数学运算符号及标点符号+加法运算,适用于两个数或两个同阶矩阵相加.—减法运算*乘法运算.*点乘运算/除法运算./点除运算^乘幂运算.^点乘幂运算\反斜杠表示左除.(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果.(2)“%”后面所有文字为注释,M文件中(ctr+R全注释,ctr+T全取消).(3)“...”表示续行.5)数学函数函数函数名称函数函数名称sin(x)正弦函数asin(x)反正弦函数cos(x)余弦函数acos(x)反余弦函数tan(x)正切函数atan(x)反正切函数abs(x)绝对值函数max(x)最大值函数min(x)最小值函数sun(x)求和函数sqrt(x)开平方epx(x)以e为底指数log(x)自然对数Log10(x)以10为底对数sign(x)符号函数fix(x)取整函数6)数组7)矩阵1、矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行.除了分号,在输入矩阵时,按Enter键也表示开始一新行.输入矩阵时,严格要求所有行有相同的列例m=[1234;5678;9101112]p=[111122223333]特殊矩阵的建立: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列正态分布随机矩阵2矩阵中元素的操作(1)矩阵A的第r行:A(r,:)(2)矩阵A的第r列:A(:,r)(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)(4)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2,j1:j2)(5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:)(6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:,j2:-1:j1)(7)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[](8)删除A的第j1~j2列,构成新矩阵:A(:,j1:j2)=[](9)将矩阵A和B拼接成新矩阵:[AB];[A;B]3矩阵的运算(1)标量-矩阵运算:同标量-数组运算。(2)矩阵-矩阵运算:[1]元素对元素的运算,同数组-数组运算[2]矩阵运算:矩阵加法:A+B矩阵乘法:A*B矩阵转置:方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:[V,D]=eig[A]求矩阵的范数:norm(A,1)计算矩阵A的1范数norm(A,2)计算矩阵A的2范数norm(A,inf)计算矩阵A的无穷范数A8)关系与逻辑运算1、关系操作符关系操作符说明小于=小于或等于大于=大于或等于==等于~=不等于2、逻辑运算符逻辑操作符说明&︱~与或非9)程序设计Matlab有两种工作方式:1)人机交互的命令行指令操作方式,即在命令窗口每输入一条命令,则立即运行该命令得到结果。2)进行控制流的程序设计,即编制一种可存储的以M为扩展名的文件(简称M文件)。在Matlab下执行该程序M文件分两种:(1)命令式M文件:也称脚本文件,就是将Matlab的一系列命令按顺序编制成一个文本文件,文件名后缀为M,然后在commandwindow下运行文件名,则按顺序执行文件中的命令。文件建立方法:1.在Matlab中,点:File-New-M-file2.在编辑窗口中输入程序内容3.点:File-Save,输入文件名,后缀为M,存盘例:建立命令式脚本文件qwe.m在编辑窗口输入如下命令:a=1b=2;%行尾加分号,注意运行结果。c=a+b然后存盘。在commandwindow下输入qwe.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+(1-x1)21.建立M文件:fun.mfunctionf=fun(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^22.可以直接使用函数fun.m例如:计算f(1,2),只需在Matlab命令窗口键入命令:x=[12]fun(x)10)控制语句MATLAB提供四种决策或控制流结构:for循环、while循环、if-else-end结构switch-case结构。1、for循环:允许一组命令以固定的和预定的次数重复forx=array{commands}end在for和end语句之间的命令串{commands}按数组(array)中的每一列执行一次.在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)例:求1+2+…+100先建立脚本文件:mysum.mmysum=0;fori=1:1:100mysum=mysum+i;end存盘,然后在命令窗口输入mysum,并回车。2、While循环与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.whileexpression{commands}end只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串{commands}.例求1+2+…+100建立脚本文件:mysum.mmysum=0;i=1;while(i=100)mysum=mysum+i;i=i+1;end存盘,然后在命令窗口输入mysum,并回车。3、If-Else-End结构(1)有一个选择的一般形式是:ifexpression{commands}end如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串{commands}.(2)有三个或更多的选择的一般形式是:if(expression1){commands1}elseif(expression2){commands2}elseif(expression3){commands3}end4、switch-case结构witch-case语句的一般表达式:Switch选择判断量case选择判断值1选择判断语句1case选择判断值2选择判断语句2…….Otherwise判断执行语句End例子:Switchcodecase-1disp(‘error’)case0disp(‘writeinEnglish’)case1disp(‘writeinChinese’)Otherwisedisp(‘writeinFrench’)EndMATLAB提供三种中断控制流结构:continuebreakreturn。Continue:循环中断一次,后面循环继续;Break:循环中断,后面循环不继续,后面程序继续;return:循环中断,后面循环不继续,后面程序不继续。functionshow_continue_break_returnfori=1:4ifi==2continueendiendforj=i:4jendiiii=1fori=1:4ifi==2breakendiendforj=i:4jendiiii=2fori=1:4ifi==2returnendiendforj=i:4jEndiiii=3练习二1.有一个4X5矩阵,编程求出其最大值及其所处的位置.2.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹有多高?3.matlab编程实现continuebreakreturn三个函数的区别4.编程求解函数值)1(),5.0(),2(,0x1x021x1xf(x)32fffxx求设
本文标题:数学建模02第二章Matlab语言基础-Matlab教程
链接地址:https://www.777doc.com/doc-3831372 .html