MATLAB 7大学教学课件_第1页
MATLAB 7大学教学课件_第2页
MATLAB 7大学教学课件_第3页
MATLAB 7大学教学课件_第4页
MATLAB 7大学教学课件_第5页
已阅读5页,还剩330页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/6/25第一章MATLAB7简介1MATLAB7课件第一章MATLAB7简介第二章MATLAB7的安装和用户界面第三章基本使用方法第四章数值向量和数组第五章字符串、单元数组和结构第六章数值计算功能第七章符号运算第八章图形处理第九章GUI图形设计第十章MATLAB7程序设计2023/6/25第一章MATLAB7简介2第一章MATLAB7简介

教学目标教学重点教学过程2023/6/25第一章MATLAB7简介3教学目标本章主要介绍MATLAB的一些基本情况,让大家对该软件有一个整体的认识。它主要包括MATLAB的功能、发展历史以及MATLAB7的新特点等,由于MATLAB软件在不断地更新,所以,也要介绍获取MATLAB7最新信息的途径。2023/6/25第一章MATLAB7简介4教学重点了解MATLAB语言的基本功能和特点了解MATLAB7的新特点和新功能2023/6/25第一章MATLAB7简介5教学过程MATLAB的初步知识

MATLAB的优点

MATLAB的缺点

MATLAB7的新功能2023/6/25第一章MATLAB7简介6MATLAB的初步知识MATLAB最初是由CleveMoler用Fortran语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果;现在的MATLAB程序是MathWorks公司用C语言开发的。

MATLAB作为美国MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件。2023/6/25第一章MATLAB7简介7MATLAB的主要应用领域(1)数值分析。(2)数值和符号计算。(3)工程与科学绘图。(4)控制系统的设计与方针。(5)数字图像处理。(6)数字信号处理。(7)通讯系统设计与仿真。(8)财务与金融工程。2023/6/25第一章MATLAB7简介8MATLAB的优点1.容易使用2.可以由多种操作系统支持3.丰富的内部函数4.强大的图形和符号功能5.可以自动选择算法6.与其他软件和语言有良好的对接性2023/6/25第一章MATLAB7简介9MATLAB的缺点运行效率较低由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。价格比较贵一般的用户可能支付不起它的高昂费用。但是,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。2023/6/25第一章MATLAB7简介10MATLAB7的新功能提供了MATLAB、SIMULINK的升级以及其他最新的75个模块的升级该版本不仅提高了产品质量,同时也提供了最新的用于数据分析、大规模建模、固定点开发和编码等新特征。2023/6/25第一章MATLAB7简介11第二章MATLAB7的安装和

用户界面

教学目标教学重点教学过程2023/6/25第一章MATLAB7简介12教学目标本章主要介绍MATLAB7的安装和用户界面,通过对本章的学习,用户将学会MATLAB软件的安装过程并对用户界面有一个直观的认识2023/6/25第一章MATLAB7简介13教学重点初步认识MATLAB7的用户界面掌握MATLAB7的路径搜索2023/6/25第一章MATLAB7简介14教学过程MATLAB7的安装过程

MATLAB7用户界面概述

MATLAB7的路径搜索2023/6/25第一章MATLAB7简介15MATLAB7的安装过程用户在购买到正版MATLAB7后,可以按照相关的说明进行安装,安装过程相对比较简单。这里不在赘述。安装MATLAB7必须具有由Mathworks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MATLAB。2023/6/25第一章MATLAB7简介16MATLAB7用户界面概述MATLAB7的用户界面主要包括以下三个方面的内容:MATLAB7的主菜单MATLAB7的工具栏MATLAB7的窗口2023/6/25第一章MATLAB7简介171.MATLAB7的主菜单

MATLAB7的主菜单包括File、Edit、Debug、Desktop、Window和Help菜单。可以执行的操作有New、Open、Undo、Redo、Cut、copy和Step等。2023/6/25第一章MATLAB7简介182.MATLAB7的工具栏

MATLAB7的工具栏包括新建文件、打开文件、剪切、复制和粘贴等常用图标同时,MATLAB7的工具栏适时显示MATLAB7的当前路径,用户还可以通过工具栏来改变当前路径

2023/6/25第一章MATLAB7简介193.MATLAB7的窗口打开MATLAB7,默认打开的窗口包括:(1)命令窗口(CommandWindow);(2)命令历史窗口(CommandHistory);(3)工作间管理窗口(Workspace);(4)当前路径窗口(CurrentDirectory)此外,还有编译窗口、图形窗口和帮助窗口等其他种类的窗口。2023/6/25第一章MATLAB7简介20(1)命令窗口在默认设置下,命令窗口自动显示于MATLAB界面中,如果用户只想调出命令窗口,也可以选择Desktop|DesktopLayout|CommandWindowOnly命令。MATLAB7用户界面的右侧窗口就为命令窗口。2023/6/25第一章MATLAB7简介21(2)命令历史窗口命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询。如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令。2023/6/25第一章MATLAB7简介22(3)工作间管理窗口工作间管理窗口就是用来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型。在默认设置下,工作间管理窗口自动显示于MATLAB界面中。2023/6/25第一章MATLAB7简介23(4)当前路径窗口在默认设置下,当前路径窗口自动显示于MATLAB界面中,用户也可以选择Desktop|CurrentDirectory命令调出或隐藏该命令窗口。当前路径窗口显示着当前用户工作所在的路径2023/6/25第一章MATLAB7简介24MATLAB7的路径搜索MATLAB7有一个专门用于寻找“.m”文件的路径搜索器。“.m”文件是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB7的子目录,由于MATLAB7的一切操作都是在它的搜索路径(包括当前路径中进行的,所以如果调用的函数在搜索路径之外,MATLAB7就会认为此函数并不存在。2023/6/25第一章MATLAB7简介25MATLAB7的路径搜索(1)MATLAB7的当前目录在命令窗口中输入cd命令,并按Enter键确认,即显示有当前MATLAB7工作所在目录。>>cdC:\MATLAB71\work>>2023/6/25第一章MATLAB7简介26MATLAB7的路径搜索(2)MATLAB7的路径搜索选择MATLAB的主窗口中File|SetPath命令,进入到设置路径搜索的对话框,用户可以设置新的路径2023/6/25第一章MATLAB7简介27使用帮助系统

MATLAB7.0为用户提供了非常完善的帮助系统,例MATLAB的在线帮助、帮助窗口、帮助提示、HTML格式的帮助、pdf格式的帮助文件及MATLAB的示例和演示等。2023/6/25第一章MATLAB7简介28第三章基本使用方法

教学目标教学重点教学过程2023/6/25第一章MATLAB7简介29教学目标MATLAB7的优点不仅在于强大的功能,还在于其简单易学。本章主要是介绍MATLAB7的基本使用方法。用户在学习完本章的内容后,可以进行基本的数值运算,从而能够容易地解决许多在学习和科研中遇到的计算问题。2023/6/25第一章MATLAB7简介30教学重点标点符号的使用常用的操作命令和键盘技巧MATLAB7的数据类型常量和变量的使用方法浮点数和复数的使用方法2023/6/25第一章MATLAB7简介31教学过程简单的数学运算常用的操作命令和键盘技巧

MATLAB7的数据类型2023/6/25第一章MATLAB7简介321.简单的数学运算最简单的计算器使用法标点符号的使用常用的操作命令和键盘技巧2023/6/25第一章MATLAB7简介33(1)最简单的计算器使用法直接输入法>>3*30+3*35+4*30+4*32ans=443>>存储变量法>>grade1=3*30grade1=90>>grade2=3*35grade2=105>>total=grade1+grade2total=195>>2023/6/25第一章MATLAB7简介34

符号功能实例+加法1+2-减法1-2*乘法1*2/、\除法1/2(除)2\1(被除)^乘方2^1数值运算符号2023/6/25第一章MATLAB7简介35(2)常用标点符号标点符号定义标点符号定义;区分行,取消运行显示等.小数点以及域访问等,区分列,函数参数分隔符等…连接语句:在数组中应用较多‘字符串的标识符号()指定运算优先级等=赋值符号[]矩阵定义的标志等!调用操作系统运算{}用于构成单元数组等%注释语句的标识2023/6/25第一章MATLAB7简介36应用举例例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>>2023/6/25第一章MATLAB7简介372.常用的操作命令和键盘技巧

在使用MATLAB7语言编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事半功倍的效果。2023/6/25第一章MATLAB7简介38(1)常用的操作命令命令该命令的功能命令该命令的功能cd显示或改变工作目录hold图形保持命令clc清除工作窗load加载指定文件的变量clear清除内存变量pack整理内存碎片clf清除图形窗口path显示搜索目录diary日志文件命令quit退出MATLAB7dir显示当前目录下文件save保存内存变量到指定文件disp显示变量或文字内容type显示文件内容echo工作窗信息显示开关

2023/6/25第一章MATLAB7简介39(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恢复上一次删除2023/6/25第一章MATLAB7简介403.MATLAB7的数据类型常量和变量常量变量浮点数和复数浮点数复数2023/6/25第一章MATLAB7简介41(1)常量在MATLAB中有一些特定的变量,它们已经被预定义了某个特定的值,因此这些变量被称为常量。MATLAB7中的常量主要有pi、inf和eps等。常量常量的功能常量常量的功能ans用作结果的默认变量名nargin函数的输入参数个数beep使计算机发出“嘟嘟”声nargin函数的输出参数个数pi圆周率varagin可变的函数输入参数个数eps浮点数相对误差varagout可变的函数输出参数个数inf无穷大realmin最小的正浮点数NaN或nan不定数realmax最大的正浮点数i或j复数单位bitmax最大的正整数2023/6/25第一章MATLAB7简介42(2)变量变量是MATLAB7的基本元素之一,MATLAB7语言不要求对所使用的变量进行事先说明,而且它也不需要指定变量的类型,系统会根据该变量被赋予的值或对该变量所进行的操作来自动确定变量的类型。变量名长度不超过31位,超过31位的字符系统将忽略不计变量名区分大小写变量名必须以字母开头,变量名中可以包含字母、数字或下划线,但不允许出现标点符号2023/6/25第一章MATLAB7简介43(3)浮点数几乎在所有的情况下,MATLAB7的数据都是以双精度数值来表示的,这些双精度数在系统内部用二进制来表示。这是计算机通常的表示数据的方式,但也带来了一些问题,比如有很多实数不能被精确地表示,对能够表示的值也有一个限制,并且还存在一个浮点相对误差限。所谓相对误差限是指MATLAB7语言能够区分两个不同大小的数时,这两个数之间的最小差值。2023/6/25第一章MATLAB7简介44浮点数举例下边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>>2023/6/25第一章MATLAB7简介45(4)复数MATLAB7语言对复数的处理也是十分简便的,在处理复数问题时,不需要进行其他任何的附加操作。>>a2=pi+3.14ja2=3.1416+3.1400i>>>>b=4*(1+3/sqrt(-1))b=4.0000-12.0000i>>2023/6/25第一章MATLAB7简介46复数的数学运算举例>>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.0000i2023/6/25第一章MATLAB7简介47第四章数值向量和数组

教学目标教学重点教学过程2023/6/25第一章MATLAB7简介48教学目标本章将介绍MATLAB7的数值计算功能,包括MATLAB7的向量和数组,并介绍它们之间的运算。通过对本章的学习,读者可以编写简单且功能完善的MATLAB7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB7的数值计算方法。2023/6/25第一章MATLAB7简介49教学重点向量的运算方法关系和逻辑运算2023/6/25第一章MATLAB7简介50教学过程向量及其运算方法数组及其运算方法多项式的创建和运算方法关系和逻辑运算2023/6/25第一章MATLAB7简介511.向量及其运算在命令窗口中直接输入向量等差元素向量的生成向量与数的四则运算向量与向量之间的加减运算点积、叉积和混合积2023/6/25第一章MATLAB7简介52(1)在命令窗口中直接输入向量在MATLAB7中,生成向量最简单的方法就是在命令窗口中按一定格式直接输入。输入的格式要求是,向量元素用“[]”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。>>a2=[15,21,27,93,101];>>a1=[15;21;27;93;101];>>a1a1gt;>a2a2gt;>2023/6/25第一章MATLAB7简介53(2)等差元素向量的生成当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况,可以使用冒号(:)和linspace函数来生成等差元素向量。>>vec1=10:5:60vec1=1015202530354045505560>>vec2=linspace(10,60,11)vec2=10152025303540455055602023/6/25第一章MATLAB7简介54(3)向量与数的四则运算向量与数的加法(减法):向量中的每个元素与数的加法(减法)运算。向量与数的乘法(除法):向量中的每个元素与数的乘法(除法)运算。>>vec1=80:-9:10vec1=8071625344352617>>vec1+101ans=181172163154145136127118>>2023/6/25第一章MATLAB7简介55(4)向量与向量之间的加减运算向量与向量的加法(减法)运算:向量中的每个元素与另一个向量中相对应的元素的加法(减法)运算。>>vec1=linspace(200,500,7)>>vec2=linspace(900,600,7)>>vec3=vec1+vec2vec3=Columns1through511001100110011001100Columns6through711001100>>2023/6/25第一章MATLAB7简介56(5)点积、叉积和混合积两个向量的点积等于其中一个向量的模与另一个向量在这个向量的方向上的投影的乘积叉积的几何意义是指过两个相交向量的交点,并与此两向量所在平面垂直的向量向量的混合积的几何意义是它的绝对值表示以向量为棱的平行六面体的体积2023/6/25第一章MATLAB7简介57点积、叉积运算举例点积运算>>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=0002023/6/25第一章MATLAB7简介582.数组及其运算数组寻址和排序数组的基本数值运算数组的关系运算数组的逻辑运算2023/6/25第一章MATLAB7简介59(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=22023/6/25第一章MATLAB7简介60(2)数组的基本数值运算数组的加法(减法)数组的乘法(除法)数组的乘方2023/6/25第一章MATLAB7简介61数值运算举例加减法>>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=1102457648012023/6/25第一章MATLAB7简介62(3)数组的关系运算两个数通常可以用6种关系来进行描述:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)和不等于(~=)比较两个元素的大小时,如果结果为1,则表明关系式为真;如果结果为0,则表明关系式为假。例如关系式4+3<=6(数学语言表示4与3的和小于等于6),通过上面的叙述可知,此关系式的结果为0,标明关系式为假。

2023/6/25第一章MATLAB7简介63(4)数组的逻辑运算在各种逻辑运算中,有3种逻辑运算:与(&)、或(|)和非(~)。“&”和“|”操作符号可以比较两个标量或者两个通解数组(或矩阵);对于逻辑非“~”是一个一元操作符。但是对于数组(矩阵),逻辑运算是针对于数组(矩阵)中的每一个元素。同样,当逻辑为真时,返回值为1;当逻辑为假时,返回值为0。在MATLAB7中,逻辑运算通常可以用来生成只含有元素0和1的矩阵。2023/6/25第一章MATLAB7简介643.多项式

多项式的创建多项式的运算关系和逻辑运算2023/6/25第一章MATLAB7简介65(1)多项式的创建直接输入系数向量创建多项式特征多项式输入法由多项式的根逆推多项式2023/6/25第一章MATLAB7简介66直接输入系数向量创建多项式由于在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>>2023/6/25第一章MATLAB7简介67特征多项式输入法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/175921860444162023/6/25第一章MATLAB7简介68由多项式的根逆推多项式

如果已知某个多项式的根,那么,使用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>>2023/6/25第一章MATLAB7简介69(2)多项式的运算多项式的求值求多项式的根多项式的四则运算2023/6/25第一章MATLAB7简介70多项式的求值MATLAB7提供了两个函数来对多项式进行求值,即polyval和polyvalm。前者以数组为计算单位,后者以矩阵为计算单位。>>p=[1.0000-20.0000-16.0000480.000098.0000]p=1-20-1648098>>x=4x=4>>polyval(p,x)ans=7382023/6/25第一章MATLAB7简介71求多项式的根在MATLAB7语言里,多项式由一个行向量表示,设为p,它的系数按降序排列,使用roots函数可以求出该多项式的根。其使用格式为roots(p)。>>p=[10312-7]p=10312-7>>roots(p)ans=0.7876+2.4351i0.7876-2.4351i-2.08720.5121>>2023/6/25第一章MATLAB7简介72多项式的四则运算

加法和减法如果两个多项式的向量阶数相同,标准的数组加法有效。当两个多项式的向量阶数不同时,需要在低阶多项式的前边补0,使得它与相加的高阶多项式有相同的阶数。>>a=[8228],b=[6161]a=8228b=6161>>c=a+bc=14389>>Y3=poly2sym(c)Y3=14*x^3+3*x^2+8*x+92023/6/25第一章MATLAB7简介73多项式的四则运算乘法使用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+322023/6/25第一章MATLAB7简介74多项式的四则运算除法在数值计算中,经常需要用一个多项式去除另一个多项式。在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>>2023/6/25第一章MATLAB7简介75多项式的四则运算求导和积分

在MATLAB7语言中,分别使用polyder函数和polyint函数来求多项式的导数与积分。>>p=[3188]p=3188>>q=polyder(p)q=928>>p1=polyint(q)p1=3180>>2023/6/25第一章MATLAB7简介764.关系和逻辑运算关系操作符逻辑操作符关系与逻辑函数NaNs和空矩阵各种运算符的优先级2023/6/25第一章MATLAB7简介77(1)关系操作符关系运算符该运算符的功能关系运算符该运算符的功能<

小于>=大于等于>

大于==等于<=小于等于~=约等于关系操作符及其功能2023/6/25第一章MATLAB7简介78(2)逻辑操作符逻辑操作符功

能&与|或~非逻辑操作符及其功能2023/6/25第一章MATLAB7简介79(3)关系与逻辑函数关系与逻辑函数及其功能关系和逻辑函数使

能xor(s,t)异或运算,s或t非零(真)返回1,s和t都是零(假)或都是非零(真)返回0any(x)如果在一个向量x中,任何元素是非零,返回1;矩阵x中的每一列有非零元素,返回1all(x)如果在一个向量x中,所有元素非零,返回1;矩阵x中的每一列所有元素非零,返回12023/6/25第一章MATLAB7简介80(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>>2023/6/25第一章MATLAB7简介81各种运算符的优先级优

级运

符最高()(小括号)↓.’(转置)‘(共轭转置).^(数组和数值乘方)^(矩阵乘方)↓+(一元加法)-(一元减法)~(取反)↓.*(乘法)*(矩阵乘法)./(右除)/(矩阵右除).\(左除)\(矩阵左除)↓+(加法)-(减法)↓:(冒号)↓<(小于)<=(小于或等于)>(大于)>=()大于或等于

==(等于)~=()不等于↓&(逻辑与)最低|(逻辑或)2023/6/25第一章MATLAB7简介82第五章字符串、单元数组和结构

教学目标教学重点教学过程2023/6/25第一章MATLAB7简介83教学目标本章将介绍三种特殊的数据类型,即字符串、单元数组和结构。使用这三种数据类型,相关的数据可以通过一个单元数组或是结构进行组织和访问,数据的管理就变得要容易一些。2023/6/25第一章MATLAB7简介84教学重点字符串的设定和操作单元数组的操作结构型变量的操作2023/6/25第一章MATLAB7简介85教学过程字符串的设定字符串的各种操作单元数组的生成方法单元数组的操作结构型变量的生成方法结构型变量的操作2023/6/25第一章MATLAB7简介861.字符串的设定在MATLAB7中的字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。MATLAB7对字符串的设定非常简单,只需用单引号(’)将需设定的字符串引注即可。>>str='Ihavemanygoodfriends!'str=Ihavemanygoodfriends!>>whosNameSizeBytesClassEXPLODE1x540doublearrayF11x1224chararrayF21x1224chararray2023/6/25第一章MATLAB7简介872.字符串的操作字符串元素的读取字符串的基本变换字符串的运算2023/6/25第一章MATLAB7简介88(1)字符串元素的读取字符串元素的读取利用数组操作工具进行读取使用disp函数显示字符串>>str='今天,是2019年10月25日,我们班一起去上海旅游。'str=今天,是2019年10月25日,我们班一起去上海旅游。>>str(6)ans=02023/6/25第一章MATLAB7简介89(2)字符串的基本变换基本变换的种类字符串的ASCII码操作使用char函数进行逆变换字符串的执行>>forn=2:3eval(['M'num2str(n)'=magic(n)'])endM2=1342M3=8163574922023/6/25第一章MATLAB7简介90常见字符串的操作函数名函数用途函数名函数用途strcat链接字符串strvcat垂直链接字符串strcmp比较字符串大小strncmp比较字符串的前n个字符findstr在其他的字符串中寻找该字符串strjust证明字符数组strmatch查找可能匹配的字符串strrep用其他字符串代替改串strtok查找字符串中的记号blanks生成空的字符串deblank删除字符串内的空格ischar字符串检验iscellstr字符串的单元检验isletter字母检验isspace空格检验stringsstrings函数的帮助2023/6/25第一章MATLAB7简介91(3)字符串的运算字符串的运算主要是指判断字符串是否相等,通过字符的运算来比较字符,字符串中字符的分类、查找与替换、字符串与数值的转换和数组与字符串的转换等。2023/6/25第一章MATLAB7简介92判断字符串是否相等有两个函数可以用来判断两个输入的字符串是否相等。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>>2023/6/25第一章MATLAB7简介93通过字符的运算比较字符运算符号的意义符号形式符号意义英文简写==等于eq~=不等于ne<小于lt>

大于gt<=小于或等于le>=大于或等于ge2023/6/25第一章MATLAB7简介94字符串中字符的分类字符串中的字符通常可以分为空白字符、字母字符和其他类型的字符。用户可以用isletter和isspace两个函数来对字符串中的字符进行分类。realstring='zaobao'realstring=zaobao>>A=isspace(realstring)A=Columns1through1100000000000Columns12through1600011>>2023/6/25第一章MATLAB7简介95.查找与替换查找与替换是字符串操作中的一项重要内容,MATLAB7语言提供了findstr、strfind和strrep等函数来实现查找与替换操作。>>s1=‘我们班的班长是是赵洁!‘;>>s2=strrep(s1,'赵洁','黄远')s2=我们班的班长是是黄远!>>s3=strrep(s2,'黄远!',‘谁?')s3=

我们班的班长是是谁?

>>

2023/6/25第一章MATLAB7简介96字符串与数值的转换常见的字符串转换函数函数功能函数功能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整数转换成字符串2023/6/25第一章MATLAB7简介97字符串与数值的转换举例使用str2num函数将字符型矩阵转换为数字矩阵>>S=['12';'34']S=%S为字符型矩阵1234>>X=str2num(S)X=%X为数字型矩阵

12342023/6/25第一章MATLAB7简介982.单元数组直接生成单元数组使用cell函数生成单元数组单元数组的内容的显示或获取单元数组的变维处理2023/6/25第一章MATLAB7简介99(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]2023/6/25第一章MATLAB7简介100(2)使用cell函数生成单元数组应用举例:>>A=cell(2,2)A=[][][][]>>A{1,1}=['富强''民主';'文明''廉洁']A=[2x4char][][][]2023/6/25第一章MATLAB7简介101(3)单元数组的内容的显示或获取>>celldisp(A,'Huang')Huang{1,1}=1222Huang{2,1}=TsinghuaandPekingHuang{1,2}=MATLAB7Huang{2,2}=1.0000+5.0000i12.0000-4.0000i>>2023/6/25第一章MATLAB7简介102(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]>>2023/6/25第一章MATLAB7简介1033.结构型变量直接输入法生成结构型变量使用struct函数生成结构型变量在结构体变量中添加成员变量在结构体变量中删除成员变量在结构体变量中调用成员变量

getefield和setfield函数的使用2023/6/25第一章MATLAB7简介104(1)直接输入法生成结构型变量>>student.test=[995696876769877692];>>='WuQing';>>student.weight=68;>>student.height=1.72;>>student.num=2019214091;>>student.add='Schoolofcivilengneering.Tsinghuauniversity';>>student.tel='1381042679*';2023/6/25第一章MATLAB7简介105(2)使用struct函数生成结构型变量>>truct_array=struct(‘d’,{{‘北京’,‘上海'}},'strengths',[400001000])truct_array=d:{‘北京’‘上海'}strengths:[400001000]>>2023/6/25第一章MATLAB7简介106(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>>2023/6/25第一章MATLAB7简介107(4)在结构体变量中删除成员变量

使用函数rmfifld从结构体变量中删除成员变量。>>student=rmfield(student,'age');student=1x2structarraywithfields:testnameweightheightnumaddtelgender2023/6/25第一章MATLAB7简介108(5)在结构体变量中调用成员变量>>student(1).test%从结构体变量中取出相关信息ans=995696876769877692>>student(1).test(5)ans=67>>student(1).addans=Schoolofcivilengneering.Tsinghuauniversity2023/6/25第一章MATLAB7简介109(6)getefield和setfield函数的使用getefield函数取得当前存储在某个成员变量中的值。setfield函数给某个成员变量插入新的值。>>GETF=getfield(student(1),'add')GETF=Schoolofcivilengneering.Tsinghuauniversity>>2023/6/25第一章MATLAB7简介110第六章数值计算功能

教学目标教学重点教学过程2023/6/25第一章MATLAB7简介111教学目标本章将介绍MATLAB7的数值计算功能,包括MATLAB7的向量、矩阵以及它们之间的运算。介绍了一些特殊的矩阵数据结构。最后介绍一些MATLAB7与线性代数和概率统计的结合。通过对本章的学习,读者可以编写简单且功能完善的MATLAB7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB7的数值计算方法。2023/6/25第一章MATLAB7简介112教学重点矩阵的生成和基本的数值运算稀疏型矩阵的生成和基本操作数值微分的求解方法2023/6/25第一章MATLAB7简介113教学过程矩阵的生成和基本的数值运算特殊矩阵的生成稀疏型矩阵的生成和基本操作稀疏型矩阵和满矩阵的相互转换微分和积分的定义数值微分的求解方法对函数进行数值积分的方法使用MATLAB7进行线性代数的运算使用MATLAB7进行概率统计方面的运算2023/6/25第一章MATLAB7简介1141.矩阵的生成矩阵的生成有多种方式,通常使用的有4种方法:在命令窗口中直接输入矩阵通过语句和函数产生矩阵在M文件中建立矩阵从外部的数据文件中导入矩阵>>matrix=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]matrix=11112222333344442023/6/25第一章MATLAB7简介1152.矩阵的基本数值运算矩阵与常数的四则运算矩阵之间的四则运算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.66672023/6/25第一章MATLAB7简介1163.特殊矩阵的生成零矩阵和全1矩阵的生成(zeros、ones)对角矩阵的生成(diag)随机矩阵的生成(rand、randn)范德蒙德矩阵的生成(vander)魔术矩阵的生成(magic)Hilbert矩阵和反Hilbert矩阵的生成(hilb、invhilb)2023/6/25第一章MATLAB7简介117特殊矩阵的生成举例>>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>>2023/6/25第一章MATLAB7简介1184.稀疏型矩阵稀疏矩阵的生成稀疏矩阵与满矩阵的相互转换稀疏矩阵的操作2023/6/25第一章MATLAB7简介119(1)稀疏矩阵的生成在MATLAB7中,生成稀疏矩阵用特殊的函数来进行,这些函数有speye、spones、spdiags、sparse、find、full、spalloc、sprand和sprandn等。2023/6/25第一章MATLAB7简介120Speye函数应用举例>>A=eye(5)A=1000001000001000001000001>>speye(size(A))ans=(1,1)1(2,2)1(3,3)1(4,4)1(5,5)12023/6/25第一章MATLAB7简介121

(2)稀疏矩阵与满矩阵的相互转换

用来将稀疏矩阵和满矩阵相互转换的函数有sparse、full和find等3个函数。>>S(10,50)=82;>>S(32,14)=82;>>S(251,396)=25;>>I=find(S)%生成S中非零元素的位置I=329512309993962023/6/25第一章MATLAB7简介122

(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>>2023/6/25第一章MATLAB7简介1235.微分和积分数值微分使用diff函数求数值微分使用gradient函数求近似梯度jacobian函数求多元函数的导数函数的数值积分矩形求积trapz函数(梯形求积)自适应法(Simpson法)高阶自适应法(Newton-Cotes法)2023/6/25第一章MATLAB7简介124(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)]>>2023/6/25第一章MATLAB7简介125(2)函数的数值积分>>x=0:0.1:10;>>y=sin(x);>>z=cumsum(y)*0.1;>>plot(x,y,'r-',x,z,'k*')>>2023/6/25第一章MATLAB7简介1262023/6/25第一章MATLAB7简介1276.MATLAB7与线性代数矩阵的特征参数运算矩阵的分解运算矩阵的结构操作2023/6/25第一章MATLAB7简介128(1)矩阵的特征参数运算矩阵的乘方运算和开方运算矩阵的指数和对数运算矩阵的逆运算矩阵的行列式运算矩阵的特征值运算矩阵(向量)的范数运算矩阵的条件数运算矩阵的秩矩阵的迹2023/6/25第一章MATLAB7简介129特征参数运算举例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>>2023/6/25第一章MATLAB7简介130特征参数运算举例2矩阵的秩>>T1=[111;223]T1=111223>>r=rank(T1)r=2>>2023/6/25第一章MATLAB7简介131(2)矩阵的分解运算三角分解(lu)正交分解(qr)特征值分解(eig)Chollesky分解(chol)奇异值分解(svd)2023/6/25第一章MATLAB7简介132分解运算举例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.00000

3.6667-0.833300

2.6818>>2023/6/25第一章MATLAB7简介133分解运算举例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.84122023/6/25第一章MATLAB7简介134(3)矩阵的结构操作矩阵的标识矩阵的扩充矩阵的部分删除矩阵的修改矩阵结构的改变矩阵的旋转和翻转2023/6/25第一章MATLAB7简介135结构操作举例1矩阵的标识>>A=magic(4)A=16231351110897612414151>>A(2,4)ans=8>>2023/6/25第一章MATLAB7简介136结构操作举例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.2023/6/25第一章MATLAB7简介1377.MATLAB7与概率统计随机数的产生统计量的数字特征参数估计假设检验统计作图2023/6/25第一章MATLAB7简介138(1)随机数的产生均匀分布的随机数据的产生(unifrnd)指数分布的随机数据的产生(exprnd)二项分布的随机数据的产生(binornd)正态分布的随机数据的产生(normrnd)2023/6/25第一章MATLAB7简介139随机数的产生举例均匀分布的随机数据的产生>>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>>2023/6/25第一章MATLAB7简介140(2)统计量的数字特征平均值和中位数(mean、geomean)数据比较(sort、sortrows、range)期望和方差(mean、var)常见分布的期望和方差(unifstat、binostat)协方差与相关系数(cov、corrcoee)2023/6/25第一章MATLAB7简介141统计量的数字特征举例1算术平均值>>A=magic(4)A=1623135111089761

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论