为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

MATLAB与物流管理实验(1)

2022-11-16 30页 ppt 517KB 5阅读

用户头像 个人认证

is_923180

暂无简介

举报
MATLAB与物流管理实验(1)1谭志加Office#616zjatan@mail.hust.edu.cn华中科技大学管理学院MATLAB与物流管理实验王林Office#659wanglin982@163.com2内容安排第一章MATLAB7简介第二章MATLAB7的安装和用户界面第三章基本使用方法第四章数值向量和数组第五章字符串、单元数组和结构第六章数值计算功能第七章符号运算第八章图形处理第九章GUI图形设计第十章MATLAB7程序设计3第一章MATLAB7简介教学目标教学重点教学过程4教学目标本章主要介绍MATLAB的一些基本情况,让大家对该软件有一个整...
MATLAB与物流管理实验(1)
1谭志加Office#616zjatan@mail.hust.edu.cn华中科技大学管理学院MATLAB与物流管理实验王林Office#659wanglin982@163.com2内容安排第一章MATLAB7简介第二章MATLAB7的安装和用户界面第三章基本使用方法第四章数值向量和数组第五章字符串、单元数组和结构第六章数值计算功能第七章符号运算第八章图形处理第九章GUI图形第十章MATLAB7程序设计3第一章MATLAB7简介教学目标教学重点教学过程4教学目标本章主要介绍MATLAB的一些基本情况,让大家对该软件有一个整体的认识。它主要包括MATLAB的功能、发展历史以及MATLAB7的新特点等,由于MATLAB软件在不断地更新,所以,也要介绍获取MATLAB7最新信息的途径。5教学重点了解MATLAB语言的基本功能和特点了解MATLAB7的新特点和新功能6教学过程MATLAB的初步知识MATLAB的优点MATLAB的缺点MATLAB7的新功能7MATLAB的初步知识MATLAB最初是由CleveMoler用Fortran语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果;现在的MATLAB程序是MathWorks公司用C语言开发的。MATLAB作为美国MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件。8MATLAB的主要应用领域(1)数值分析。(2)数值和符号计算。(3)工程与科学绘图。(4)控制系统的设计与方针。(5)数字图像处理。(6)数字信号处理。(7)通讯系统设计与仿真。(8)财务与金融工程。9MATLAB的优点1.容易使用2.可以由多种操作系统支持3.丰富的内部函数4.强大的图形和符号功能5.可以自动选择算法6.与其他软件和语言有良好的对接性10MATLAB的缺点运行效率较低由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。价格比较贵一般的用户可能支付不起它的高昂费用。但是,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。11MATLAB7的新功能提供了MATLAB、SIMULINK的升级以及其他最新的75个模块的升级该版本不仅提高了产品质量,同时也提供了最新的用于数据分析、大规模建模、固定点开发和编码等新特征。12第二章MATLAB7的安装和用户界面教学目标教学重点教学过程13教学目标本章主要介绍MATLAB7的安装和用户界面,通过对本章的学习,用户将学会MATLAB软件的安装过程并对用户界面有一个直观的认识14教学重点初步认识MATLAB7的用户界面掌握MATLAB7的路径搜索15教学过程MATLAB7的安装过程MATLAB7用户界面概述MATLAB7的路径搜索16MATLAB7的安装过程用户在购买到正版MATLAB7后,可以按照相关的说明进行安装,安装过程相对比较简单。这里不在赘述。安装MATLAB7必须具有由Mathworks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MATLAB。17MATLAB7用户界面概述MATLAB7的用户界面主要包括以下三个方面的内容:MATLAB7的主菜单MATLAB7的工具栏MATLAB7的窗口181.MATLAB7的主菜单MATLAB7的主菜单包括File、Edit、Debug、Desktop、Window和Help菜单。可以执行的操作有New、Open、Undo、Redo、Cut、copy和Step等。192.MATLAB7的工具栏MATLAB7的工具栏包括新建文件、打开文件、剪切、复制和粘贴等常用图标同时,MATLAB7的工具栏适时显示MATLAB7的当前路径,用户还可以通过工具栏来改变当前路径203.MATLAB7的窗口打开MATLAB7,默认打开的窗口包括:(1)命令窗口(CommandWindow);(2)命令历史窗口(CommandHistory);(3)工作间管理窗口(Workspace);(4)当前路径窗口(CurrentDirectory)此外,还有编译窗口、图形窗口和帮助窗口等其他种类的窗口。21(1)命令窗口在默认设置下,命令窗口自动显示于MATLAB界面中,如果用户只想调出命令窗口,也可以选择Desktop|DesktopLayout|CommandWindowOnly命令。MATLAB7用户界面的右侧窗口就为命令窗口。22(2)命令历史窗口命令历史窗口显示用户在命令窗口中所输入的每条命令的历史,并标明使用时间,这样可以方便用户的查询。如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令。23(3)工作间管理窗口工作间管理窗口就是用来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型。在默认设置下,工作间管理窗口自动显示于MATLAB界面中。24(4)当前路径窗口在默认设置下,当前路径窗口自动显示于MATLAB界面中,用户也可以选择Desktop|CurrentDirectory命令调出或隐藏该命令窗口。当前路径窗口显示着当前用户工作所在的路径25MATLAB7的路径搜索MATLAB7有一个专门用于寻找“.m”文件的路径搜索器。“.m”文件是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB7的子目录,由于MATLAB7的一切操作都是在它的搜索路径(包括当前路径中进行的,所以如果调用的函数在搜索路径之外,MATLAB7就会认为此函数并不存在。26MATLAB7的路径搜索(1)MATLAB7的当前目录在命令窗口中输入cd命令,并按Enter键确认,即显示有当前MATLAB7工作所在目录。>>cdC:\MATLAB71\work>>27MATLAB7的路径搜索(2)MATLAB7的路径搜索选择MATLAB的主窗口中File|SetPath命令,进入到设置路径搜索的对话框,用户可以设置新的路径28使用帮助系统  MATLAB7.0为用户提供了非常完善的帮助系统,例MATLAB的在线帮助、帮助窗口、帮助提示、HTML格式的帮助、pdf格式的帮助文件及MATLAB的示例和演示等。29第三章基本使用方法教学目标教学重点教学过程30教学目标MATLAB7的优点不仅在于强大的功能,还在于其简单易学。本章主要是介绍MATLAB7的基本使用方法。用户在学习完本章的内容后,可以进行基本的数值运算,从而能够容易地解决许多在学习和科研中遇到的计算问题。31教学重点标点符号的使用常用的操作命令和键盘技巧MATLAB7的数据类型常量和变量的使用方法浮点数和复数的使用方法32教学过程简单的数学运算常用的操作命令和键盘技巧MATLAB7的数据类型331.简单的数学运算最简单的计算器使用法标点符号的使用常用的操作命令和键盘技巧34(1)最简单的计算器使用法直接输入法>>3*30+3*35+4*30+4*32ans=443>>存储变量法>>grade1=3*30grade1=90>>grade2=3*35grade2=105>>total=grade1+grade2total=195>>35符号功能实例+加法1+2-减法1-2*乘法1*2/、\除法1/2(除)2\1(被除)^乘方2^1数值运算符号36(2)常用标点符号标点符号定义标点符号定义;区分行,取消运行显示等.小数点以及域访问等,区分列,函数参数分隔符等…连接语句:在数组中应用较多‘字符串的标识符号()指定运算优先级等=赋值符号[]矩阵定义的标志等!调用操作系统运算{}用于构成单元数组等%注释语句的标识37应用举例例4-1华科物流系有3个班,每班30人,二年级有3个班,每班35人,三年级有4个班,每班30人,四年级有4个班,每班32人。求华科物流系本科一共有多少人。>>grade1=3*30;>>grade2=3*35;>>grade3=4*30;>>grade4=4*32;>>total=grade1+grade2+grade1+grade2total=443>>382.常用的操作命令和键盘技巧在使用MATLAB7语言编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事半功倍的效果。39(1)常用的操作命令命令该命令的功能命令该命令的功能cd显示或改变工作目录hold图形保持命令clc清除工作窗load加载指定文件的变量clear清除内存变量pack整理内存碎片clf清除图形窗口path显示搜索目录diary日志文件命令quit退出MATLAB7dir显示当前目录下文件save保存内存变量到指定文件disp显示变量或文字内容type显示文件内容echo工作窗信息显示开关  40(2)常用的键盘操作和快捷键键盘按钮和快捷键该操作的功能键盘按钮和快捷键该操作的功能↑(Ctrl+p)调用上一行Home(Ctrl+a)光标置于当前行开头↓(Ctrl+n)调用下一行End(Ctrl+e)光标置于当前行结尾←(Ctrl+b)光标左移一个字符Esc(Ctrl+u)清除当前输入行→(Ctrl+f)光标右移一个字符Del(Ctrl+d)删除光标处字符Ctrl+←光标左移一个单词Backspace(Ctrl+h)删除光标前字符Ctrl+→光标右移一个单词Alt+BackSpace恢复上一次删除413.MATLAB7的数据类型常量和变量常量变量浮点数和复数浮点数复数42(1)常量在MATLAB中有一些特定的变量,它们已经被预定义了某个特定的值,因此这些变量被称为常量。MATLAB7中的常量主要有pi、inf和eps等。常量常量的功能常量常量的功能ans用作结果的默认变量名nargin函数的输入参数个数beep使计算机发出“嘟嘟”声nargout函数的输出参数个数pi圆周率varagin可变的函数输入参数个数eps浮点数相对误差varagout可变的函数输出参数个数inf无穷大realmin最小的正浮点数NaN或nan不定数realmax最大的正浮点数i或j复数单位bitmax最大的正整数43(2)变量变量是MATLAB7的基本元素之一,MATLAB7语言不要求对所使用的变量进行事先说明,而且它也不需要指定变量的类型,系统会根据该变量被赋予的值或对该变量所进行的操作来自动确定变量的类型。变量名长度不超过31位,超过31位的字符系统将忽略不计变量名区分大小写变量名必须以字母开头,变量名中可以包含字母、数字或下划线,但不允许出现标点符号44(3)浮点数几乎在所有的情况下,MATLAB7的数据都是以双精度数值来表示的,这些双精度数在系统内部用二进制来表示。这是计算机通常的表示数据的方式,但也带来了一些问题,比如有很多实数不能被精确地表示,对能够表示的值也有一个限制,并且还存在一个浮点相对误差限。所谓相对误差限是指MATLAB7语言能够区分两个不同大小的数时,这两个数之间的最小差值。45浮点数举例下边3个式子的计算结果是相同的,但是由于这些数字都是使用二进制存储的,在使用双精度数来表达这些数时,往往就会出现一些误差>>a=0.33-0.5+0.17a=2.7756e-017>>b=0.33+0.17-0.5b=0>>c=0.17-0.5+0.33c=5.5511e-017>>46(4)复数MATLAB7语言对复数的处理也是十分简便的,在处理复数问题时,不需要进行其他任何的附加操作。>>a2=pi+3.14ja2=3.1416+3.1400i>>>>b=4*(1+3/sqrt(-1))b=4.0000-12.0000i>>47复数的数学运算举例>>a=1+2*ia=1.0000+2.0000i>>b=3-4ib=3.0000-4.0000i>>c=pi+sin(pi/2)*ic=3.1416+1.0000i>>d=a+bd=4.0000-2.0000i48第四章数值向量和数组教学目标教学重点教学过程49教学目标本章将介绍MATLAB7的数值计算功能,包括MATLAB7的向量和数组,并介绍它们之间的运算。通过对本章的学习,读者可以编写简单且功能完善的MATLAB7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB7的数值计算方法。50教学重点向量的运算方法关系和逻辑运算51教学过程向量及其运算方法数组及其运算方法多项式的创建和运算方法关系和逻辑运算521.向量及其运算在命令窗口中直接输入向量等差元素向量的生成向量与数的四则运算向量与向量之间的加减运算点积、叉积和混合积53(1)在命令窗口中直接输入向量在MATLAB7中,生成向量最简单的方法就是在命令窗口中按一定格式直接输入。输入的格式要求是,向量元素用“[]”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。>>a2=[15,21,27,93,101];>>a1=[15;21;27;93;101];>>a1a1=15212793101>>a2a2=15212793101>>54(2)等差元素向量的生成当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况,可以使用冒号(:)和linspace函数来生成等差元素向量。>>vec1=10:5:60vec1=1015202530354045505560>>vec2=linspace(10,60,11)vec2=101520253035404550556055(3)向量与数的四则运算向量与数的加法(减法):向量中的每个元素与数的加法(减法)运算。向量与数的乘法(除法):向量中的每个元素与数的乘法(除法)运算。>>vec1=80:-9:10vec1=8071625344352617>>vec1+101ans=181172163154145136127118>>56(4)向量与向量之间的加减运算向量与向量的加法(减法)运算:向量中的每个元素与另一个向量中相对应的元素的加法(减法)运算。>>vec1=linspace(200,500,7)>>vec2=linspace(900,600,7)>>vec3=vec1+vec2vec3=Columns1through511001100110011001100Columns6through711001100>>57(5)点积、叉积和混合积两个向量的点积等于其中一个向量的模与另一个向量在这个向量的方向上的投影的乘积叉积的几何意义是指过两个相交向量的交点,并与此两向量所在平面垂直的向量向量的混合积的几何意义是它的绝对值表示以向量为棱的平行六面体的体积58点积、叉积运算举例点积运算>>x1=[11223344]>>x2=[1,2,3,4]>>a=dot(x1,x2)a=330>>sum(x1.*x2)ans=330>>叉积运算>>x1=[112233]x1=112233>>x2=[123]x2=123>>x3=cross(x1,x2)x3=000592.数组及其运算数组寻址和排序数组的基本数值运算数组的关系运算数组的逻辑运算60(1)数组寻址和排序通过对数组下表的访问来实现数组寻址>>A=rand(1,5)A=0.95010.23110.60680.48600.8913>>>>A(4)ans=0.4860>>>>A(2:3)%A(2:1:3)ans=0.23110.6068使用sort函数对数组进行排序>>X=[375042]>>sort(X,1)%对列排序ans=042375>>sort(2)ans=261(2)数组的基本数值运算数组的加法(减法)数组的乘法(除法)数组的乘方62数值运算举例加减法>>X=[147];>>Y=[258];>>Z=X-YZ=-1-1-1>>V=X+YV=3915>>乘方>>X=[147]X=147>>Y=[258]Y=258>>Z=X.^YZ=11024576480163(3)数组的关系运算两个数通常可以用6种关系来进行描述:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)和不等于(~=)比较两个元素的大小时,如果结果为1,则表明关系式为真;如果结果为0,则表明关系式为假。例如关系式4+3<=6(数学语言表示4与3的和小于等于6),通过上面的叙述可知,此关系式的结果为0,标明关系式为假。64(4)数组的逻辑运算在各种逻辑运算中,有3种逻辑运算:与(&)、或(|)和非(~)。“&”和“|”操作符号可以比较两个标量或者两个通解数组(或矩阵);对于逻辑非“~”是一个一元操作符。但是对于数组(矩阵),逻辑运算是针对于数组(矩阵)中的每一个元素。同样,当逻辑为真时,返回值为1;当逻辑为假时,返回值为0。在MATLAB7中,逻辑运算通常可以用来生成只含有元素0和1的矩阵。653.多项式多项式的创建多项式的运算关系和逻辑运算66(1)多项式的创建直接输入系数向量创建多项式特征多项式输入法由多项式的根逆推多项式67直接输入系数向量创建多项式由于在MATLAB7中多项式是以向量的形式存储的,直接输入向量,MATLAB7将按降幂自动把向量的元素分配给多项式各项的系数。而该向量可以是行向量,也可以是列向量。>>P=[3501012]P=3501012>>y=poly2sym(P)y=3*x^5+5*x^4+x^2+12>>disp(y)3*x^5+5*x^4+x^2+12>>68特征多项式输入法MATLAB7提供了poly函数,使用它可以由矩阵的特征多项式创建多项式。使用该方法生成多项式时,其首项的系数必为1。>>A=[3141;5926;5358;9793]A=3141592653589793>>p=poly(A);>>disp(poly2sym(p))x^4-20*x^3-16*x^2+480*x+1724034232352773/1759218604441669由多项式的根逆推多项式如果已知某个多项式的根,那么,使用poly函数,可以很轻松地产生其对应的多项式。>>roots=[-4-2+2i-2-2i5]roots=-4.0000-2.0000+2.0000i-2.0000-2.0000i5.0000>>p=poly(roots)p=13-16-88-160>>disp(poly2sym(p))x^4+3*x^3-16*x^2-88*x-160>>70(2)多项式的运算多项式的求值求多项式的根多项式的四则运算71多项式的求值MATLAB7提供了两个函数来对多项式进行求值,即polyval和polyvalm。前者以数组为计算单位,后者以矩阵为计算单位。>>p=[1.0000-20.0000-16.0000480.000098.0000]p=1-20-1648098>>x=4x=4>>polyval(p,x)ans=73872求多项式的根在MATLAB7语言里,多项式由一个行向量表示,设为p,它的系数按降序排列,使用roots函数可以求出该多项式的根。其使用格式为roots(p)。>>p=[10312-7]p=10312-7>>roots(p)ans=0.7876+2.4351i0.7876-2.4351i-2.08720.5121>>73多项式的四则运算加法和减法如果两个多项式的向量阶数相同,的数组加法有效。当两个多项式的向量阶数不同时,需要在低阶多项式的前边补0,使得它与相加的高阶多项式有相同的阶数。>>a=[8228],b=[6161]a=8228b=6161>>c=a+bc=14389>>Y3=poly2sym(c)Y3=14*x^3+3*x^2+8*x+974多项式的四则运算乘法使用conv函数对多项式进行乘法运算。格式为c=conv(a,b),其中a和b为两个多项式的系数向量,c为相乘所生成的多项式的系数向量。>>a=[1234],b=[5678];>>Y1=poly2sym(a)Y1=x^3+2*x^2+3*x+4>>Y2=poly2sym(b)Y2=5*x^3+6*x^2+7*x+8>>c=conv(a,b);>>Y=poly2sym(c)Y=5*x^6+16*x^5+34*x^4+60*x^3+61*x^2+52*x+3275多项式的四则运算除法在数值计算中,经常需要用一个多项式去除另一个多项式。在MATLAB7语言中,使用decon函数来完成该项功能。>>a=[1234],b=[5678];>>c=conv(a,b);>>d=deconv(c,a);>>e=deconv(c,b)>>x=poly2sym(d),y=poly2sym(e)x=5*x^3+6*x^2+7*x+8y=x^3+2*x^2+3*x+4>>76多项式的四则运算求导和积分在MATLAB7语言中,分别使用polyder函数和polyint函数来求多项式的导数与积分。>>p=[3188]p=3188>>q=polyder(p)q=928>>p1=polyint(q)p1=3180>>774.关系和逻辑运算关系操作符逻辑操作符关系与逻辑函数NaNs和空矩阵各种运算符的优先级78(1)关系操作符关系运算符该运算符的功能关系运算符该运算符的功能< 小于>=大于等于> 大于==等于<=小于等于~=约等于关系操作符及其功能79(2)逻辑操作符逻辑操作符功能&与|或~非逻辑操作符及其功能80(3)关系与逻辑函数关系与逻辑函数及其功能关系和逻辑函数使用功能xor(s,t)异或运算,s或t非零(真)返回1,s和t都是零(假)或都是非零(真)返回0any(x)如果在一个向量x中,任何元素是非零,返回1;矩阵x中的每一列有非零元素,返回1all(x)如果在一个向量x中,所有元素非零,返回1;矩阵x中的每一列所有元素非零,返回181(4)NaNs和空矩阵NaNs和空矩阵([])在MATLAB7中作特殊处理:根据IEEE数学标准。对NaNs的几乎所有运算结果都得出NaNs。空矩阵由MATLAB7的生成器确定,并有它自己的特性。空矩阵是简单的,它们是MATLAB7大小为零的变量。>>a=size([])size:尺寸a=000行0列>>b=ones(4,0)b=Emptymatrix:4-by-0>>size(b)ans=40>>length(b)ans=0>>82各种运算符的优先级优先级运算符最高()(小括号)↓.’(转置)‘(共轭转置).^(数组和数值乘方)^(矩阵乘方)↓+(一元加法)-(一元减法)~(取反)↓.*(乘法)*(矩阵乘法)./(右除)/(矩阵右除).\(左除)\(矩阵左除)↓+(加法)-(减法)↓:(冒号)↓<(小于)<=(小于或等于)>(大于)>=()大于或等于==(等于)~=()不等于↓&(逻辑与)最低|(逻辑或)83第五章字符串、单元数组和结构教学目标教学重点教学过程84教学目标本章将介绍三种特殊的数据类型,即字符串、单元数组和结构。使用这三种数据类型,相关的数据可以通过一个单元数组或是结构进行组织和访问,数据的管理就变得要容易一些。85教学重点字符串的设定和操作单元数组的操作结构型变量的操作86教学过程字符串的设定字符串的各种操作单元数组的生成方法单元数组的操作结构型变量的生成方法结构型变量的操作871.字符串的设定在MATLAB7中的字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。MATLAB7对字符串的设定非常简单,只需用单引号(’)将需设定的字符串引注即可。>>str='Ihavemanygoodfriends!'str=Ihavemanygoodfriends!>>whosNameSizeBytesClassEXPLODE1x540doublearrayF11x1224chararrayF21x1224chararray882.字符串的操作字符串元素的读取字符串的基本变换字符串的运算89(1)字符串元素的读取字符串元素的读取利用数组操作工具进行读取使用disp函数显示字符串>>str='今天,是2005年10月25日,我们班一起去上海旅游。'str=今天,是2005年10月25日,我们班一起去上海旅游。>>str(6)ans=090(2)字符串的基本变换基本变换的种类字符串的ASCII码操作使用char函数进行逆变换字符串的执行>>forn=2:3eval(['M'num2str(n)'=magic(n)'])endM2=1342M3=81635749291常见字符串的操作函数名函数用途函数名函数用途strcat链接字符串strvcat垂直链接字符串strcmp比较字符串大小strncmp比较字符串的前n个字符findstr在其他的字符串中寻找该字符串strjust证明字符数组strmatch查找可能匹配的字符串strrep用其他字符串代替改串strtok查找字符串中的记号blanks生成空的字符串deblank删除字符串内的空格ischar字符串检验iscellstr字符串的单元检验isletter字母检验isspace空格检验stringsstrings函数的帮助92(3)字符串的运算字符串的运算主要是指判断字符串是否相等,通过字符的运算来比较字符,字符串中字符的分类、查找与替换、字符串与数值的转换和数组与字符串的转换等。93判断字符串是否相等有两个函数可以用来判断两个输入的字符串是否相等。strcmp函数:比较两个字符串是否相等,当相等时,系统将返回值1,不相等时,返回值0;strncmp函数:比较两个输入字符串的前几个字符是否相等,当相等时,系统将返回值1,不相等时,返回值0。>>words1=‘人民文学';>>words2=‘人民的同志';>>N=strcmp(words1,words2)N=0>>Y=strncmp(words1,words2,3)Y=0>>x=strncmp(words1,words2,1)x=1>>94通过字符的运算比较字符运算符号的意义符号形式符号意义英文简写==等于eq~=不等于ne<小于lt> 大于gt<=小于或等于le>=大于或等于ge95字符串中字符的分类字符串中的字符通常可以分为空白字符、字母字符和其他类型的字符。用户可以用isletter和isspace两个函数来对字符串中的字符进行分类。realstring='www.zaobao.com'realstring=www.zaobao.com>>A=isspace(realstring)A=Columns1through1100000000000Columns12through1600011>>96.查找与替换查找与替换是字符串操作中的一项重要内容,MATLAB7语言提供了findstr、strfind和strrep等函数来实现查找与替换操作。>>s1=‘我们班的班长是是赵洁!‘;>>s2=strrep(s1,'赵洁','黄远')s2=我们班的班长是是黄远!>>s3=strrep(s2,'黄远!',‘谁?')s3=我们班的班长是是谁?>>97字符串与数值的转换常见的字符串转换函数函数功能函数功能hex2dec将16进制字符串转化为10进制整数dec2hex将10进制整数转化为16进制字符串bin2dec将2进制字符串转化为10进制整数dec2bin将10进制整数转化为2进制字符串base2dec转化B底字符串为10进制整数hex2num将16进制字符转化为双精度数upper改该字符串为大写lower改该字符串为小写fprintf把格式化的文本写到文件中或显示屏上sprintf用格式控制,数字转换成字符串sscanf用格式控制,字符串转换成数字charASCII码转换成字符串num2str数字转换成字符串int2str整数转换成字符串98字符串与数值的转换举例使用str2num函数将字符型矩阵转换为数字矩阵>>S=['12';'34']S=%S为字符型矩阵1234>>X=str2num(S)X=%X为数字型矩阵1234992.单元数组直接生成单元数组使用cell函数生成单元数组单元数组的内容的显示或获取单元数组的变维处理100(1)直接生成单元数组用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。>>A={‘反对霸权','WindGone',100+200*i,[90,85,55;67,70,102;57,18,100;-200,89,78]}A=Columns1through3‘反对霸权''WindGone'[1.0000e+002+2.0000e+002i]Column4[4x3double]101(2)使用cell函数生成单元数组应用举例:>>A=cell(2,2)A=[][][][]>>A{1,1}=['富强''民主';'文明''廉洁']A=[2x4char][][][]102(3)单元数组的内容的显示或获取>>celldisp(A,'Huang')Huang{1,1}=1222Huang{2,1}=TsinghuaandPekingHuang{1,2}=MATLAB7Huang{2,2}=1.0000+5.0000i12.0000-4.0000i>>103(4)单元数组的变维处理前边所述的对矩阵的变维处理同样也适用于对单元数组的变维处理。此外还可以使用reshape函数进行操作。>>A={[12;34],‘love’;‘呼唤和平',[90,85,55;67,70,102;57,18,100;-200,89,78]}A=[2x2double]'love'‘呼唤和平'[4x3double]>>a=reshape(A,1,4)a=[2x2double]‘呼唤和平''love'[4x3double]>>1043.结构型变量直接输入法生成结构型变量使用struct函数生成结构型变量在结构体变量中添加成员变量在结构体变量中删除成员变量在结构体变量中调用成员变量getefield和setfield函数的使用105(1)直接输入法生成结构型变量>>student.test=[995696876769877692];>>student.name='WuQing';>>student.weight=68;>>student.height=1.72;>>student.num=2003214091;>>student.add='Schoolofcivilengneering.Tsinghuauniversity';>>student.tel='1381042679*';106(2)使用struct函数生成结构型变量>>truct_array=struct(‘d’,{{‘北京’,‘上海'}},'strengths',[400001000])truct_array=d:{‘北京’‘上海'}strengths:[400001000]>>107(3)在结构体变量中添加成员变量>>student(1).gender='Male';%在student中添加gender和age这2项记录>>student(1).age=25;>>student(2).gender='Female';>>student(2).age=21;>>student%查询student的结构student=1x2structarraywithfields:testnameweightheightnumaddtelgenderage>>108(4)在结构体变量中删除成员变量使用函数rmfifld从结构体变量中删除成员变量。>>student=rmfield(student,'age');student=1x2structarraywithfields:testnameweightheightnumaddtelgender109(5)在结构体变量中调用成员变量>>student(1).test%从结构体变量中取出相关信息ans=995696876769877692>>student(1).test(5)ans=67>>student(1).addans=Schoolofcivilengneering.Tsinghuauniversity110(6)getefield和setfield函数的使用getefield函数取得当前存储在某个成员变量中的值。setfield函数给某个成员变量插入新的值。>>GETF=getfield(student(1),'add')GETF=Schoolofcivilengneering.Tsinghuauniversity>>111第六章数值计算功能教学目标教学重点教学过程112教学目标本章将介绍MATLAB7的数值计算功能,包括MATLAB7的向量、矩阵以及它们之间的运算。介绍了一些特殊的矩阵数据结构。最后介绍一些MATLAB7与线性代数和概率统计的结合。通过对本章的学习,读者可以编写简单且功能完善的MATLAB7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB7的数值计算方法。113教学重点矩阵的生成和基本的数值运算稀疏型矩阵的生成和基本操作数值微分的求解方法114教学过程矩阵的生成和基本的数值运算特殊矩阵的生成稀疏型矩阵的生成和基本操作稀疏型矩阵和满矩阵的相互转换微分和积分的定义数值微分的求解方法对函数进行数值积分的方法使用MATLAB7进行线性代数的运算使用MATLAB7进行概率统计方面的运算1151.矩阵的生成矩阵的生成有多种方式,通常使用的有4种方法:在命令窗口中直接输入矩阵通过语句和函数产生矩阵在M文件中建立矩阵从外部的数据文件中导入矩阵>>matrix=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]matrix=11112222333344441162.矩阵的基本数值运算矩阵与常数的四则运算矩阵之间的四则运算X=B/A:表示求矩阵方程XA=B的解。AX=B,则X=A\B>>A=[21-1;210;1-11]A=21-12101-11>>B=[1-13;432];>>X=B/AX=-2.00002.00001.0000-2.66675.0000-0.66671173.特殊矩阵的生成零矩阵和全1矩阵的生成(zeros、ones)对角矩阵的生成(diag)随机矩阵的生成(rand、randn)范德蒙德矩阵的生成(vander)魔术矩阵的生成(magic)Hilbert矩阵和反Hilbert矩阵的生成(hilb、invhilb)118特殊矩阵的生成举例>>rand(5)ans=0.95010.76210.61540.40570.05790.23110.45650.79190.93550.35290.60680.01850.92180.91690.81320.48600.82140.73820.41030.00990.89130.44470.17630.89360.1389>>1194.稀疏型矩阵稀疏矩阵的生成稀疏矩阵与满矩阵的相互转换稀疏矩阵的操作120(1)稀疏矩阵的生成在MATLAB7中,生成稀疏矩阵用特殊的函数来进行,这些函数有speye、spones、spdiags、sparse、find、full、spalloc、sprand和sprandn等。121Speye函数应用举例>>A=eye(5)A=1000001000001000001000001>>speye(size(A))ans=(1,1)1(2,2)1(3,3)1(4,4)1(5,5)1122(2)稀疏矩阵与满矩阵的相互转换用来将稀疏矩阵和满矩阵相互转换的函数有sparse、full和find等3个函数。>>S(10,50)=82;>>S(32,14)=82;>>S(251,396)=25;>>I=find(S)%生成S中非零元素的位置I=32951230999396123(3)稀疏矩阵的操作对稀疏矩阵进行操作,主要由nnz、nonzeros、nzmax、sponse、spalloc、isspase、spyfun和spy等函数来实现。>>v=[6278];>>S=diag(v,1)>>R=sparse(S);>>N=issparse(S)N=0>>Y=issparse(R)Y=1>>1245.微分和积分数值微分使用diff函数求数值微分使用gradient函数求近似梯度jacobian函数求多元函数的导数函数的数值积分矩形求积trapz函数(梯形求积)自适应法(Simpson法)高阶自适应法(Newton-Cotes法)125(1)数值微分>>symsxyz>>jacobian([x*y*z;y;x+z],[xyz])ans=[y*z,x*z,x*y][0,1,0][1,0,1]>>symsuv>>jacobian(u*exp(v),[u;v])ans=[exp(v),u*exp(v)]>>126(2)函数的数值积分>>x=0:0.1:10;>>y=sin(x);>>z=cumsum(y)*0.1;>>plot(x,y,'r-',x,z,'k*')>>1271286.MATLAB7与线性代数矩阵的特征参数运算矩阵的分解运算矩阵的结构操作129(1)矩阵的特征参数运算矩阵的乘方运算和开方运算矩阵的指数和对数运算矩阵的逆运算矩阵的行列式运算矩阵的特征值运算矩阵(向量)的范数运算矩阵的条件数运算矩阵的秩矩阵的迹130特征参数运算举例1矩阵的逆运算>>A=[1000;1200;2130;1214]A=1000120021301214>>B=inv(A)B=1.0000000-0.50000.500000-0.5000-0.16670.333300.1250-0.2083-0.08330.2500>>131特征参数运算举例2矩阵的秩>>T1=[111;223]T1=111223>>r=rank(T1)r=2>>132(2)矩阵的分解运算三角分解(lu)正交分解(qr)特征值分解(eig)Chollesky分解(chol)奇异值分解(svd)133分解运算举例1三角分解(lu)>>X=[62-1;240;14-1;-1-13]>>[L,U]=lu(X)L=1.0000000.33330.90910.40680.16671.00000-0.1667-0.18181.0000U=6.00002.0000-1.000003.6667-0.8333002.6818>>134分解运算举例2正交分解>>A=[1734;3112;4128]>>[Q,R]=qr(A)Q=-0.95940.22940.1643-0.1693-0.0023-0.9856-0.2257-0.97330.0411R=-17.7200-5.7562-7.67490-10.9939-6.896700-10.8412135(3)矩阵的结构操作矩阵的标识矩阵的扩充矩阵的部分删除矩阵的修改矩阵结构的改变矩阵的旋转和翻转136结构操作举例1矩阵的标识>>A=magic(4)A=16231351110897612414151>>A(2,4)ans=8>>137结构操作举例2矩阵的翻转>>A=randn(3)A=-0.43260.28771.1892-1.6656-1.1465-0.03760.12531.19090.3273>>B=fliplr(A)B=1.18920.2877-0.4326-0.0376-1.1465-1.66560.1387.MATLAB7与概率统计随机数的产生统计量的数字特征参数估计假设检验统计作图139(1)随机数的产生均匀分布的随机数据的产生(unifrnd)指数分布的随机数据的产生(exprnd)二项分布的随机数据的产生(binornd)正态分布的随机数据的产生(normrnd)140随机数的产生举例均匀分布的随机数据的产生>>unifrnd(1,4)ans=1.6971>>unifrnd(1,10,4,4)ans=8.24381.44788.59484.95819.17561.70552.56514.06043.08706.76732.53713.82803.15382.71809.94874.2857>>141(2)统计量的数字特征平均值和中位数(mean、geomean)数据比较(sort、sortrows、range)期望和方差(mean、var)常见分布的期望和方差(unifstat、binostat)协方差与相关系数(cov、corrcoee)142统计量的数字特征举例1算术平均值>>A=magic(4)A=16231351110897612414151>>mean(A)ans=8.50008.50008.50008.5000143统计量的数字特征举例2样本的方差>>B=rand(4)B=0.49660.81800.34120.83850.89980.66020.53410.56810.82160.34200.72710.37040.64490.28970.30930.7027>>var(B)ans=0.03270.06430.03750.0399144(3)参数估计常见分布的参数估计β分布的极大似然估计值和置信区间正态分布的参数估计非线性模型置信区间预测高斯—牛顿法的非线性最小二乘数据拟合非线性模型的参数估计的置信区间145参数估计举例β分布的极大似然估计值和置信区间>>X=betarnd(7,5,150,1);>>[PHAT,PCI]=betafit(X,0.03)PHAT=7.75175.5560PCI=5.44404.053410.05947.0585>>146(4)假设检验已知单个正态分布的均值μ的假设检验(U检验法)σ2未知时,单个正态总体的均值μ的假设检验(t检验法)两个正态分布均值差的检验(t检验)两个分布一致性的检验——秩和检验147假设检验举例某种电子元件的寿命X(以小时计)服从正态分布,μ、σ2均未知。现测得16只元件的寿命如下159280101212224379179264222362168250149260485170问是否有理由认为元件的平均寿命大于225(小时)?解:未知σ2,在水平α=0.05下检验假设:H0:μ<μ0=225,H1:μ>225>>X=[159280101212224379179264222362168250149260485170];>>[h,sig,ci]=ttest(X,225,0.05,1)结果显示为:h=0sig=0.2570ci=198.2321Inf%均值225在该置信区间内148(5)统计作图正整数的频率表累积分布函数图形最小二乘拟合直线绘制正态分布概率图形样本的概率图形附加有正态密度曲线的直方图在指定的界线之间绘制正态密度曲线绘制威布尔(Weibull)概率图形样本数据的盒图
/
本文档为【MATLAB与物流管理实验(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索