matlab课件.ppt

上传人:豆**** 文档编号:33411694 上传时间:2022-08-11 格式:PPT 页数:218 大小:1.16MB
返回 下载 相关 举报
matlab课件.ppt_第1页
第1页 / 共218页
matlab课件.ppt_第2页
第2页 / 共218页
点击查看更多>>
资源描述

《matlab课件.ppt》由会员分享,可在线阅读,更多相关《matlab课件.ppt(218页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、目录 第一章 Matlab7基础 第二章 数值向量和数组 第三章 字符串、单元数组和结构 第四章 数值计算功能 第五章 符号运算 第六章 图形处理第一章 MATLAB7基础 1-1 MATLAB简介 1-2 MATLAB的安装使用 1-3 MATLAB基本使用方法MATLAB的初步知识 MATLAB最初是由Cleve Moler用Fortran语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果;现在的MATLAB程序是MathWorks公司用 C语言开发的。 MATLAB作为美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是

2、目前最好的科学计算类软件。 MATLAB的主要应用领域(1)数值分析。(2)数值和符号计算。(3)工程与科学绘图。(4)控制系统的设计与仿针。(5)数字图像处理。(6)数字信号处理。(7)通讯系统设计与仿真。(8)财务与金融工程。MATLAB的优点 1. 容易使用 2. 可以由多种操作系统支持 3. 丰富的内部函数 4. 强大的图形和符号功能 5. 可以自动选择算法 6. 与其他软件和语言有良好的对接性MATLAB的缺点 运行效率较低 由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。 价格比较贵(这个很多人) 一般的用户可能支付不起

3、它的高昂费用(10000美金左右)。但是,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消MATLAB 7.1的新功能的新功能 提供了MATLAB、SIMULINK的升级以及其他最新的75个模块的升级 该版本不仅提高了产品质量,同时也提供了最新的用于数据分析、大规模建模、固定点开发和编码等新特征。MATLAB 7.1的安装 过程 用户在购买到正版MATLAB 7.1后,可以按照相关的说明进行安装,安装过程相对比较简单。这里不在赘述。安装MATLAB 7.1必须具有由Mathworks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MATLAB。MATLAB

4、7.1用户界面概述 MATLAB 7.1的用户界面主要包括以下三个方面的内容: MATLAB 7.1的主菜单 MATLAB 7.1的工具栏 MATLAB 7.1的窗口1. MATLAB 7.1的主菜单-MATLAB 7.1的主菜单包括File、Edit、Debug(调试)、Desktop、Window和Help菜单。-可以执行的操作有New、Open、Undo、Redo、Cut、copy和Step等。2. MATLAB 7.1的工具栏 MATLAB 7.1的工具栏包括新建文件、打开文件、剪切、复制和粘贴等常用图标 同时,MATLAB 7.1的工具栏适时显示MATLAB 7.1的当前路径,用户还

5、可以通过工具栏来改变当前路径3. MATLAB 7.1的窗口 打开MATLAB 7.1,默认打开的窗口包括:(1)命令窗口(Command Window);(2)命令历史窗口(Command History);(3)工作间管理窗口(Workspace);(4)当前路径窗口(Current Directory) 此外,还有编译窗口、图形窗口和帮助窗口等其他种类的窗口 。(1) 命令窗口在默认设置下,命令窗口自动显示于MATLAB界面中,如果用户只想调出命令窗口,也可以选择Desktop | Desktop Layout | Command Window Only命令。MATLAB 7.1用户界面

6、的右侧窗口就为命令窗口。(1) 命令窗口 该窗口可以执行matlab语句、函数、命令和程序,也执行外部应用程序,同时还可以显示程序运行结果(2) 命令历史窗口 命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询。 如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令。 (2) 命令历史窗口 可执行的操作如下: 1、单行或者多行指令的复制 2、单行指令的再运行(双击) 3、多行指令的再运行(鼠标右键evaluate selection) 4、将指令保存为M文件(creat M-file)(3) 工作间管理窗口 工作间管理窗口就是用

7、来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型。 在默认设置下,工作间管理窗口自动显示于MATLAB界面中。(4)当前路径窗口 在默认设置下,当前路径窗口自动显示于MATLAB界面中,用户也可以选择Desktop| Current Directory命令调出或隐藏该命令窗口。 当前路径窗口显示着当前用户工作所在的路径(4)当前路径窗口 当前路径窗口又称为当前目录浏览器,可进行如下操作: 1、修改当前路径 2、打开在当前路径中的matlab文件 3、文件管理MATLAB 7.1的路径搜索 MATLAB 7.1有一个专门用于寻找“.m”文件的路径搜索器。“.m”文件

8、是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB 7.1的子目录,由于MATLAB 7.1的一切操作都是在它的搜索路径(包括当前路径中)进行的,所以如果调用的函数在搜索路径之外,MATLAB 7.1就会认为此函数并不存在。MATLAB 7.1的路径搜索 (1)MATLAB 7.1的当前目录 在命令窗口中输入cd命令,并按Enter键确认,即显示有当前MATLAB 7.1工作所在目录。 cd( :系统提示符,在其后输入要执行的命令即可) C:MATLAB7.1work MATLAB 7.1的路径搜索 (2)MATLAB 7.1的路径搜索 选择MATLAB的主窗口中

9、File | Set Path命令 ,进入到设置路径搜索的对话框 ,用户可以设置新的路径使用帮助系统MATLAB 7.1为用户提供了非常完善的帮助系统,例如MATLAB 的在线帮助、帮助窗口、帮助提示、HTML格式的帮助、pdf格式的帮助文件及MATLAB 的示例和演示等。1.简单的数学运算 最简单的计算器使用法 标点符号的使用 (1)最简单的计算器使用法 直接输入法 3*30+3*35+4*30+4*32 ans = 443 存储变量法 grade1=3*30 grade1 = 90 grade2=105 total=grade1+grade2 total = 195 数值运算符号符 号功

10、能实 例+加法1+2-减法1-2*乘法1*2/、除法1/2或是12乘方21(2)常用标点符号标 点 符 号定 义标 点 符 号定 义;区分行,取消运行显示等.小数点以及域访问等,区分列,函数参数分隔符等连接语句:在数组中应用较多字符串的标识符号()指定运算优先级等=赋值符号矩阵定义的标志等!调用操作系统运算用于构成单元数组等%注释语句的标识应用举例 例 哈理工自动化08级有3个班,每班30人,09级有3个班,每班35人,10级有4个班,每班30人,11级有4个班,每班32人。求哈理工自动化本科一共有多少人。应用举例 grade1=3*30; grade2=3*35; grade3=4*30;

11、grade4=4*32; total=grade1+grade2+ grade3+grade4 total = 443 2.常用的操作命令和键盘技巧 在使用MATLAB 7.1语言编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事半功倍的效果 。(1)常用的操作命令命 令该命令的功能命 令该命令的功能cd显示或改变工作目录hold图形保持命令clc清除工作窗load加载指定文件的变量clear清除内存变量pack整理内存碎片clf清除图形窗口path显示搜索目录diary日志文件命令quit退出MATLAB 7dir显示当前目录下文件save保存内存变量到指定文件disp显示变量或文

12、字内容type显示文件内容echo工作窗信息显示开关(2)常用的键盘操作和快捷键键盘按钮和快捷键该操作的功能键盘按钮和快捷键该操作的功能(Ctrlp)调用上一行Home(Ctrla)光标置于当前行开头(Ctrln)调用下一行End(Ctrle)光标置于当前行结尾(Ctrlb)光标左移一个字符Esc(Ctrlu)清除当前输入行(Ctrlf)光标右移一个字符Del(Ctrld)删除光标处字符Ctrl光标左移一个单词Backspace(Ctrlh)删除光标前字符Ctrl光标右移一个单词AltBackSpace恢复上一次删除3.MATLAB 7.1的数据类型 常量和变量 常量 变量 浮点数和复数 浮点

13、数 复数(1)常量 在MATLAB中有一些特定的变量,它们已经被预定义了某个特定的值,因此这些变量被称为常量。MATLAB 7.1中的常量主要有pi、inf和eps等。常 量常量的功能常 量常量的功能ans用作结果的默认变量名nargin函数的输入参数个数beep使计算机发出“嘟嘟”声varagin可变的函数输入参数个数pi圆周率varagout可变的函数输出参数个数eps浮点数相对误差realmin最小的正浮点数inf无穷大realmax最大的正浮点数NaN或nan不定数bitmax最大的正整数i或j复数单位(2)变量 变量是MATLAB 7.1的基本元素之一,MATLAB 7.1语言不要求

14、对所使用的变量进行事先说明,而且它也不需要指定变量的类型,系统会根据该变量被赋予的值或对该变量所进行的操作来自动确定变量的类型。 变量名长度不超过31位,超过31位的字符系统将忽略不计 变量名区分大小写 变量名必须以字母开头,变量名中可以包含字母、数字或下划线,但不允许出现标点符号(3)浮点数 几乎在所有的情况下,MATLAB 7.1的数据都是以双精度数值来表示的,这些双精度数在系统内部用二进制来表示。这是计算机通常的表示数据的方式,但也带来了一些问题,比如有很多实数不能被精确地表示,对能够表示的值也有一个限制,并且还存在一个浮点相对误差限。 所谓相对误差限是指MATLAB 7.1语言能够区分

15、两个不同大小的数时,这两个数之间的最小差值。浮点数举例 下边3个式子的计算结果是相同的,但是由于这些数字都是使用二进制存储的,在使用双精度数来表达这些数时,往往就会出现一些误差 a=0.33-0.5+0.17 a = 2.7756e-017 b=0.33+0.17-0.5 b = 0 c=0.17-0.5+0.33 c = 5.5511e-017 (4)复数 MATLAB 7.1语言对复数的处理也是十分简便的,在处理复数问题时,不需要进行其他任何的附加操作。 a2=pi+3.14i a2 = 3.1416 + 3.1400i b=4*(1+3/sqrt(-1) b = 4.0000 -12.0

16、000i 复数的数学运算 举例 a=1+2*i a = 1.0000 + 2.0000i b=3-4i b = 3.0000 - 4.0000i c=pi+sin(pi/2)*i c = 3.1416 + 1.0000i d=a+b d = 4.0000 - 2.0000i第二章 数值向量和数组 向量及其运算方法 数组及其运算方法 多项式的创建和运算方法 关系和逻辑运算1.向量及其运算 在命令窗口中直接输入向量 等差元素向量的生成 向量与数的四则运算 向量与向量之间的加减运算 点积、叉积和混合积(1)在命令窗口中直接输入向量在在MATLAB 7.1中,生成向量最中,生成向量最简单的方法就是在命

17、令窗口中按简单的方法就是在命令窗口中按一定格式直接输入。输入的格式一定格式直接输入。输入的格式要求是,向量元素用要求是,向量元素用“ ”括起来,括起来,元素之间用空格、逗号或者分号元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分用空格或逗号生成行向量;用分号生成列向量。号生成列向量。 a2=15,21,27,93,101; a1=15;21;27;93;101; a1 a1 = 15 21 27 93 101 a2 a2 = 15 21 27 93 101 (2)等差元素向量

18、的生成 当向量的元素过多,同当向量的元素过多,同时向量各元素有等差的时向量各元素有等差的规律,此时采用直接输规律,此时采用直接输入法将过于繁琐。针对入法将过于繁琐。针对该种情况该种情况 ,可以使用冒,可以使用冒号号(:) 和和linspace函数来函数来生成等差元素向量。生成等差元素向量。 vec1=10:5:60 vec1 = 10 15 20 25 30 35 40 45 50 55 60 vec2=linspace (10,60,11) vec2 = 10 15 20 25 30 35 40 45 50 55 60(3) 向量与数的四则运算 向量与数的加法向量与数的加法(减法减法):向量

19、中的每个元素与向量中的每个元素与数的加法数的加法(减法减法)运算。运算。 向量与数的乘法向量与数的乘法(除法除法):向量中的每个元素与向量中的每个元素与数的乘法数的乘法(除法除法)运算。运算。 vec1=80:-9:10 vec1 = 80 71 62 53 44 35 26 17 vec1+101 ans = 181 172 163 154 145 136 127 118 (4)向量与向量之间的加减运算 向量与向量的加法向量与向量的加法(减法减法)运算:向量中的每个元运算:向量中的每个元素与另一个向量中相对应的元素的加法素与另一个向量中相对应的元素的加法(减法减法)运运算。算。 vec1=l

20、inspace(200,500,7) vec2=linspace(900,600,7) vec3=vec1+vec2 vec3 = Columns 1 through 5 1100 1100 1100 1100 1100 Columns 6 through 7 1100 1100 (5) 点积、叉积和混合积 两个向量的点积等于其中一个向量的模与另一个两个向量的点积等于其中一个向量的模与另一个向量在这个向量的方向上的投影的乘积向量在这个向量的方向上的投影的乘积 叉积的几何意义是指过两个相交向量的交点,并叉积的几何意义是指过两个相交向量的交点,并与此两向量所在平面垂直的向量与此两向量所在平面垂直的

21、向量 向量的混合积的几何意义是它的绝对值表示以向向量的混合积的几何意义是它的绝对值表示以向量为棱的平行六面体的体积量为棱的平行六面体的体积 点积、叉积运算举例 点积 运算 x1=11 22 33 44 x2=1,2,3,4 a=dot(x1,x2) a = 330 sum(x1.*x2) ans = 330 叉积运算 x1=11 22 33 x1 = 11 22 33 x2=1 2 3 x2 = 1 2 3 x3=cross(x1,x2) x3 = 0 0 02. 数组及其运算 数组寻址和排序 数组的基本数值运算 数组的关系运算 数组的逻辑运算 (1) 数组寻址和排序 通过对数组下表的访问来实

22、现数组寻址 A=rand(1,5) A = 0.9501 0.2311 0.6068 0.4860 0.8913 A(4) ans = 0.4860 A(2:3) ans = 0.2311 0.6068 使用sort函数对数组进行排序 X = 3 7 5; 0 4 2 sort(X,1) ans = 0 4 2 3 7 5 sort(X,2) ans = 3 5 7 0 2 4(2)数组的基本数值运算 数组的加法(减法) 数组的乘法(除法) 数组的乘方数值运算举例 加减法 X=1 4 7; Y=2 5 8; Z=X-Y Z = -1 -1 -1 V=X+Y V = 3 9 15 乘方 X=1

23、4 7 X = 1 4 7 Y=2 5 8 Y = 2 5 8 Z=X.Y Z = 1 1024 5764801(3)数组的关系运算 两个数通常可以用6种关系来进行描述:小于()、小于等于()、大于等于( =)、等于(= =)和不等于( =) 比较两个元素的大小时,如果结果为1,则表明关系式为真;如果结果为0,则表明关系式为假。例如关系式4+3 P=3 5 0 1 0 12 P = 3 5 0 1 0 12 y=poly2sym(P) y = 3*x5+5*x4+x2+12 disp(y) 3*x5+5*x4+x2+12 特征多项式输入法 MATLAB 7.1提供了poly函数,使用它可以由矩

24、阵的特征多项式创建多项式。使用该方法生成多项式时,其首项的系数必为1 。 A= 3 1 4 1; 5 9 2 6;5 3 5 8; 9 7 9 3 A = 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 p=poly(A); disp(poly2sym(p) x4-20*x3-16*x2+480*x+98 由多项式的根逆推多项式 如果已知某个多项式的根,那么,使用poly函数,可以很轻松地产生其对应的多项式。 roots=-4 -2+2i -2-2i 5 roots = -4.0000 -2.0000 + 2.0000i -2.0000 - 2.0000i 5.0000 p=p

25、oly(roots) p = 1 3 -16 -88 -160 disp(poly2sym(p) x4+3*x3-16*x2-88*x-160 (2)多项式的运算 多项式的求值 求多项式的根 多项式的四则运算 多项式的求值 MATLAB 7.1提供了两个函数来对多项式进行求值,即polyval和polyvalm。前者以数组为计算单位,后者以矩阵为计算单位。 p=1.0000 -20.0000 -16.0000 480.0000 98.0000 p = 1 -20 -16 480 98 x=4 x = 4 polyval(p,x) ans = 738求多项式的根 在MATLAB 7.1语言里,多

26、项式由一个行向量表示,设为p,它的系数按降序排列,使用roots函数可以求出该多项式的根。其使用格式为roots(p)。 p=1 0 3 12 -7 p = 1 0 3 12 -7 roots(p) ans = 0.7876 + 2.4351i 0.7876 - 2.4351i -2.0872 0.5121 多项式的四则运算 加法和减法 如果两个多项式的向量阶数相同,标准的数组加法有效。当两个多项式的向量阶数不同时,需要在低阶多项式的前边补0,使得它与相加的高阶多项式有相同的阶数。 a=8 2 2 8,b=6 1 6 1 a = 8 2 2 8 b = 6 1 6 1 c=a+b c = 14

27、 3 8 9 Y3=poly2sym(c) Y3 = 14*x3+3*x2+8*x+9多项式的四则运算 乘法 使用conv函数对多项式进行乘法运算。 格式为c=conv(a,b),其中a和b为两个多项式的系数向量,c为相乘所生成的多项式的系数向量。 a=1 2 3 4,b=5 6 7 8; Y1=poly2sym(a) Y1 = x3+2*x2+3*x+4 Y2=poly2sym(b) Y2 = 5*x3+6*x2+7*x+8 c=conv(a,b); Y=poly2sym(c) Y = 5*x6+16*x5+34*x4+60*x3+61*x2+52*x+32多项式的四则运算 除法 在数值计算

28、中,经常需要用一个多项式去除另一个多项式。在MATLAB 7.1语言中,使用deconv函数来完成该项功能。 a=1 2 3 4,b=5 6 7 8; c=conv(a,b); d=deconv(c,a); e=deconv(c,b) x=poly2sym(d),y=poly2sym(e) x = 5*x3+6*x2+7*x+8 y = x3+2*x2+3*x+4 多项式的四则运算 求导和积分 在MATLAB 7.1语言中,分别使用polyder函数和polyint函数来求多项式的导数与积分。 p=3 1 8 8 p = 3 1 8 8 q=polyder(p) q = 9 2 8 p1=po

29、lyint(q) p1 = 3 1 8 0 4.关系和逻辑运算 关系操作符 逻辑操作符 关系与逻辑函数 NaNs和空矩阵 各种运算符的优先级 (1) 关系操作符 关系运算符该运算符的功能关系运算符该运算符的功能=大于等于大于=等于 a=size() a = 0 0 b=ones(4,0)%产生一个4行0列的单位矩阵 b = Empty matrix: 4-by-0 size(b) ans = 4 0 length(b) ans = 0 各种运算符的优先级 优 先 级运 算 符最高()(小括号).(转置)(共轭转置).(数组和数值乘方)(矩阵乘方)+(一元加法)-(一元减法)(取反).*(乘法)

30、*(矩阵乘法)./(右除)/(矩阵右除).(左除)(矩阵左除)+(加法)-(减法):(冒号)(小于)(大于)=()大于或等于=(等于)=()不等于&(逻辑与)最低|(逻辑或)第三章 字符串、单元数组和结构字符串的设定字符串的各种操作单元数组结构型变量1. 字符串的设定 在MATLAB 7.1中的字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。MATLAB 7.1对字符串的设定非常简单,只需用单引号()将需设定的字符串引注即可。 str=I have many good friends! str = I have many good friends!2. 字符串的操作 字符串元素

31、的读取 字符串的基本变换 字符串的运算 (1)字符串元素的读取 字符串元素的读取 利用数组操作工具进行读取 使用disp函数显示字符串 str=今天,是2005年10月25日, 我们班一起去上海旅游。 str = 今天,是2005年10月25日, 我们班一起去上海旅游。 str(6) ans = 0(2)字符串的基本变换 基本变换的种类 字符串的ASCII码操作 使用char函数进行逆变换 字符串的执行 常见字符串的操作 函 数 名函 数 用 途函 数 名函 数 用 途strcat链接字符串strvcat垂直链接字符串strcmp比较字符串大小strncmp比较字符串的前n个字符findstr

32、在其他的字符串中寻找该字符串strjust证明字符数组strmatch查找可能匹配的字符串strrep用其他字符串代替改串strtok查找字符串中的记号blanks生成空的字符串deblank删除字符串内的空格ischar字符串检验iscellstr字符串的单元检验isletter字母检验isspace空格检验stringsstrings函数的帮助(3)字符串的运算 字符串的运算主要是指判断字符串是否相等,通过字符的运算来比较字符,字符串中字符的分类、查找与替换、字符串与数值的转换和数组与字符串的转换等。 判断字符串是否相等 有两个函数可以用来判断有两个函数可以用来判断两个输入的字符串是否相两

33、个输入的字符串是否相等。等。 strcmp函数:比较两函数:比较两个字符串是否相等,当个字符串是否相等,当相等时,系统将返回值相等时,系统将返回值1,不相等时,返回值,不相等时,返回值0; strncmp函数:比较两函数:比较两个输入字符串的前几个个输入字符串的前几个字符是否相等,当相等字符是否相等,当相等时,系统将返回值时,系统将返回值1,不相等时,返回值不相等时,返回值0。 words1=人民文学; words2=人民的同志; N=strcmp(words1,words2) N = 0 Y=strncmp(words1,words2,3) Y = 0 x=strncmp(words1,wo

34、rds2,1) x = 1 通过字符的运算比较字符 运算符号的意义符 号 形 式符 号 意 义英 文 简 写=等于eq= 不等于ne大于gt=大于或等于ge字符串中字符的分类 字符串中的字符通常字符串中的字符通常可以分为空白字符、可以分为空白字符、字母字符和其他类型字母字符和其他类型的字符。用户可以用的字符。用户可以用isletter(字符为真)(字符为真)和和isspace(空格为真空格为真)两个函数来对字符串两个函数来对字符串中的字符进行分类中的字符进行分类 。 realstring= realstring = A=isspace(realstring) A = Columns 1 thr

35、ough 11 0 0 0 0 0 0 0 0 0 0 0 Columns 12 through 16 0 0 0 1 1 查找与替换 查找与替换是字符串查找与替换是字符串操作中的一项重要内操作中的一项重要内容,容,MATLAB 7.1语语言提供了言提供了findstr、strfind和和strrep等函等函数来实现查找与替换数来实现查找与替换操作。操作。 s1=我们班的班长是是赵洁!; s2=strrep(s1,赵洁,黄远) s2 = 我们班的班长是是黄远! s3=strrep(s2,黄远! ,谁?) s3 = 我们班的班长是是谁? 字符串与数值的转换 常见的字符串转换函数函 数功 能函 数

36、功 能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整数转换成字符串字符串与数值的转换举例 使用str2num函数

37、将字符型矩阵转换为数字矩阵 S = 1 2 ;3 4 S = % S为字符型矩阵 1 2 3 4 X=str2num(S) X = %X为数字型矩阵 1 2 3 43. 单 元 数 组 直接生成单元数组 使用cell函数生成单元数组 单元数组的内容的显示或获取 单元数组的变维处理 (1)直接生成单元数组 用类似矩阵的记号将复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。 A=反对霸权,Wind Gone,100+200*i,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A = Columns 1 t

38、hrough 3 反对霸权 Wind Gone 1.0000e+002 +2.0000e+002i Column 4 4x3 double(2)使用cell函数生成单元数组 应用举例: A=cell(2,2) A = A1,1=富强 民主 ;文明 廉洁 A = 2x4 char (3)单元数组的内容的显示或获取 celldisp(A,Huang) %显示原数组内容 Huang1,1 = 1 2 2 2 Huang2,1 = Tsinghua and Peking Huang1,2 = MATLAB 7 Huang2,2 = 1.0000 + 5.0000i 12.0000 - 4.0000i

39、(4)单元数组的变维处理 前边所述的对矩阵的变维处理同样也适用于对单元数组的变维处理 (一维变二维即列变行)。 此外还可以使用reshape函数进行操作。 A=1 2 ;3 4,love;呼唤和平,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A = 2x2 double love 呼唤和平 4x3 double a=reshape(A,1,4) a = 2x2 double 呼唤和平 love 4x3 double 3. 结构型变量 直接输入法生成结构型变量 使用struct函数生成结构型变量 在结构体变量中添加成员变量 在结构体变量中

40、删除成员变量 在结构体变量中调用成员变量 getefield和setfield函数的使用 (1)直接输入法生成结构型变量 student.test=99 56 96 87 67 69 87 76 92; student.name=Wu Qing; student.weight=68; student.height=1.72; student.num=2003214091; student.add=School of civil engneering.Tsinghua university; student.tel=1381042679*;(2)使用struct函数生成结构型变量 truct_a

41、rray=struct(d,北京,上海,strengths,40000 1000)% d、 strengths为成员名,必须为字符串 truct_array = d: 北京 上海 strengths: 40000 1000 (3)在结构体变量中添加成员变量 student(1).gender=Male; %在student中添加gender和age这2项记录 student(1).age=25; student(2).gender=Female; student(2).age=21; student %查询student的结构student = 1x2 struct array with fi

42、elds: test name weight height num add tel gender age(4)在结构体变量中删除成员变量 使用函数rmfield从结构体变量中删除成员变量 。 student=rmfield(student,age); student = 1x2 struct array with fields: test name weight height num add tel gender(5) 在结构体变量中调用成员变量 student(1).test %从结构体变量中取出相关信息 ans = 99 56 96 87 67 69 87 76 92 student(1)

43、.test(5) ans = 67 student(1).add ans = School of civil engneering.Tsinghua university(6) getefield和setfield函数的使用 getefield函数取得当前存储在某个成员变量中的值 。 setfield函数给某个成员变量插入新的值 。 GETF=getfield(student(1),add) GETF = School of civil engneering.Tsinghua university 第四章 数值计算功能 矩阵的生成和基本的数值运算 特殊矩阵的生成 稀疏型矩阵 微分和积分 使用M

44、ATLAB 7进行线性代数的运算 使用MATLAB 7进行概率统计方面的运算1. 矩阵的生成 矩阵的生成有多种方式,通常使用的有4种方法: 在命令窗口中直接输入矩阵 通过语句和函数产生矩阵 在M文件中建立矩阵 从外部的数据文件中导入矩阵 matrix=1 ,1, 1, 1;2, 2, 2, 2;3, 3, 3, 3;4, 4, 4, 4 matrix = 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 矩阵的基本数值运算 矩阵与常数的四则运算 矩阵之间的四则运算 X=B/A:表示求矩阵方程XA=B的解。 A=2 1 -1;2 1 0;1 -1 1 A = 2 1 -1 2 1

45、0 1 -1 1 B=1 -1 3;4 3 2; X=B/A X = -2.0000 2.0000 1.0000 -2.6667 5.0000 -0.66672. 特殊矩阵的生成 零矩阵和全1矩阵的生成 (zeros 、ones) 对角矩阵的生成 (diag) 随机矩阵的生成 (rand、randn ) 范德蒙德矩阵的生成 (vander) 魔术矩阵的生成 (magic)%横竖相加都相等的矩阵 Hilbert矩阵和反Hilbert矩阵的生成 (hilb、invhilb )%3阶Hilbert 1/1 1/2 1/3 ; 1/2 1/3 1/4 ; 1/3 1/4 1/5 特殊矩阵的生成举例 r

46、and(5) ans = 0.9501 0.7621 0.6154 0.4057 0.0579 0.2311 0.4565 0.7919 0.9355 0.3529 0.6068 0.0185 0.9218 0.9169 0.8132 0.4860 0.8214 0.7382 0.4103 0.0099 0.8913 0.4447 0.1763 0.8936 0.1389 3. 稀疏型矩阵 稀疏矩阵的生成 稀疏矩阵与满矩阵的相互转换 稀疏矩阵的操作 (1) 稀疏矩阵的生成 在MATLAB 7中,生成稀疏矩阵用特殊的函数来进行,这些函数有speye、spones、spdiags、sparse、f

47、ind、full、spalloc、sprand和sprandn 等。Speye函数应用举例 A=eye(5) A = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 speye(size(A) ans = (1,1) 1 (2,2) 1 (3,3) 1 (4,4) 1 (5,5) 1 (2)稀疏矩阵与满矩阵的相互转换 用来将稀疏矩阵和满矩阵相互转换的函数有sparse、full和find等3个函数 。 S(10,50)=82; S(32,14)=82; S(251,396)=25; I=find(S) 生成S中非零元素的位置(先列后行) I

48、= 3295 12309 99396 (3)稀疏矩阵的操作 对稀疏矩阵进行操作,主要由sparse(生成稀疏矩阵)、spalloc(为非零元素配置内存)、isspase(判断是否为稀疏矩阵存储方式) 等函数来实现 。 v=6 2 7 8 ; S=diag(v,1) R=sparse(S); N=issparse(S) N = 0 Y=issparse(R) Y = 1 4. 微分和积分 数值微分数值微分 使用使用diff函数求数值微分函数求数值微分 使用使用gradient函数求近似梯度函数求近似梯度 jacobian函数求多元函数的导数函数求多元函数的导数 函数的数值积分函数的数值积分 矩形

49、求积矩形求积 trapz函数函数(梯形求积梯形求积) 自适应法自适应法(Simpson法法) 高阶自适应法高阶自适应法(Newton-Cotes法法) (1)数值微分 syms x y z %定义变量 jacobian(x*y*z; y; x+z,x y z)%求多元函数的导数 ans = y*z, x*z, x*y 0, 1, 0 1, 0, 1 syms u v jacobian(u*exp(v),u;v) %exp为指数函数 ans = exp(v), u*exp(v) (2)函数的数值积分 x=0:0.1:10; y=sin(x); z=cumsum(y)*0.1; %用于计算一个数组

50、各行的累加值 plot(x,y,r-,x,z,k*)%plot(x,y,线形,颜色,线条宽度), 5. MATLAB 7与线性代数 矩阵的特征参数运算 矩阵的分解运算 矩阵的结构操作 (1)矩阵的特征参数运算 矩阵的乘方运算和开方运算 矩阵的指数和对数运算 矩阵的逆运算 矩阵的行列式运算 矩阵的特征值运算 矩阵(向量)的范数运算 矩阵的条件数运算 矩阵的秩 矩阵的迹 特征参数运算举例1 矩阵的逆运算 A=1 0 0 0;1 2 0 0;2 1 3 0;1 2 1 4 A = 1 0 0 0 1 2 0 0 2 1 3 0 1 2 1 4 B=inv(A) B = 1.0000 0 0 0 -0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com