matlab数学建模基础教程课件.ppt

上传人:小飞机 文档编号:1481147 上传时间:2022-11-30 格式:PPT 页数:256 大小:2.84MB
返回 下载 相关 举报
matlab数学建模基础教程课件.ppt_第1页
第1页 / 共256页
matlab数学建模基础教程课件.ppt_第2页
第2页 / 共256页
matlab数学建模基础教程课件.ppt_第3页
第3页 / 共256页
matlab数学建模基础教程课件.ppt_第4页
第4页 / 共256页
matlab数学建模基础教程课件.ppt_第5页
第5页 / 共256页
点击查看更多>>
资源描述

《matlab数学建模基础教程课件.ppt》由会员分享,可在线阅读,更多相关《matlab数学建模基础教程课件.ppt(256页珍藏版)》请在三一办公上搜索。

1、MATLAB 数学建模基础教程,主讲者:程建,MATLAB的概述,MATLAB的历史MATLAB的功能其它相关软件,MATLAB的历史,MATLAB 1.0 1984 MATALB 2 1986 MATLAB 3 1987 MATLAB 3.5 1990 MATLAB 4 1992 MATLAB 4.2c R7 1994 MATLAB 5.0 R8 1996 MATLAB 5.1 R9 1997 MATLAB 5.1.1 R9.1 1997 MATLAB 5.2 R10 1998 MATLAB 5.2.1 R10.1 1998 MATLAB 5.3 R11 1999 MATLAB 5.3.1

2、R11.1 1999 MATLAB 6.0 R12 2000 MATLAB 6.1 R12.1 2001,MATLAB的历史,MATLAB是MATrixLABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C+和FORTRAN)编写的程序。尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分

3、析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。,MATLAB的历史,版本歷史:到7.1版为止,MATLB的释放编号均以数字来命名,例如R7,R12.1,R14 SP1等;从7.2版开始,释放编号以年份来命名,每年3月份推出的用a表示,9月份推出的则以b表示,例如R2006a代表2006年3月推出的版本,R2009b指2009年下半年推出的版本MATLAB 6.5 R13 2002 MATLAB 6.5.1 R13SP1 2003 MATLAB 6.5.2 R13SP2 2003 MA

4、TLAB 7 R14 2004 MATLAB 7.0.1 R14SP1 2004 MATLAB 7.0.4 R14SP2 2005 MATLAB 7.1 R14SP3 2005 MATLAB 7.2 R2006a 2006 MATLAB 7.3 R2006b 2006 MATLAB 7.4 R2007a 2007 MATLAB 7.5 R2007b 2007 MATLAB 7.6 R2008a 2008 MATLAB 7.7 R2008b 2008 MATLAB 7.8 R2009a 2009.3.6 MATLAB 7.9 R2009b 2009.9.4 MATLAB 7.10 R2010a

5、2010.3.5,MATLAB的主要功能,1数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。MATLAB和著名的符号计算语言Maple相结合,使得MATLAB具有符号计算功能。,MATLAB的主要功能,2绘图功能MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。,例如描绘一个在-4,4区间内的正弦函数:, x = -4:0.05:4; y = sin(x); plot(x,y),利用plot命令也可以在同一幅图中描绘多个函数图形:, x = 0:.01:2*pi; y1 = s

6、in(x); y2 = sin(2*x); y3 = sin(4*x); plot(x, y1; y2; y3) legend(y=sin(x), y=sin(2x),y=sin(4x),用MATLAB的画图命令可以生成复杂的三维图形, t = linspace(0, 2*pi, 512); u,v = meshgrid(t); a = -0.4; b = .5; c = .1; n = 3; x = (a*(1 - v/(2*pi) .* (1+cos(u) + c) .* cos(n*v); y = (a*(1 - v/(2*pi) .* (1+cos(u) + c) .* sin(n*v

7、); z = b*v/(2*pi) + a*(1 - v/(2*pi) .* sin(u); surf(x,y,z,y) axis off axis equal colormap(hsv(1024) shading interp material shiny lighting phong camlight(left, infinite) view(-160 25),MATLAB的主要功能,3编程语言MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。,MATLAB的主要功能,4MATLAB工具箱 MATLAB包含两部分内容:基本部分和各

8、种可选的工具箱。MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。,Matlab常用工具箱,Matlab Main Toolboxmatlab主工具箱Control System Toolbox控制系统工具箱Communication Toolbox通讯工具箱Financial Toolbox财政金融工具箱System Identification Toolbox系统辨识工具箱Fuzzy Logic Toolbox模糊逻辑工具箱Bioinformatics Toolbox生物分析工具箱,Image Processing Toolbox图象处理工具箱Database Toolbox数据库

9、工具箱Model predictive Control Toolbox模型预测控制工具箱Neural Network Toolbox神经网络工具箱Optimization Toolbox优化工具箱Partial Differential Toolbox偏微分方程工具箱Robust Control Toolbox鲁棒控制工具箱,Signal Processing Toolbox信号处理工具箱Spline Toolbox样条工具箱Statistics Toolbox统计工具箱Symbolic Math Toolbox符号数学工具箱Simulink Toolbox动态仿真工具箱Virtual Rea

10、lity Toolbox虚拟现实工具箱Wavelet Toolbox小波工具箱 等等. 而且每个新出的版本都在增加、更新完善。,控制系统工具箱 Control System Toolbox,连续系统设计和离散系统设计状态空间和传递函数以及模型转换时域响应(脉冲响应、阶跃响应、斜坡响应)频域响应(Bode图、Nyquist图)根轨迹、极点配置,遗传算法和直接搜索工具箱Genetic Algorithm and Direct Search Toolbox,是针对 MATLAB 优化处理算法的扩展,它在 MATLAB 和 Optimization Toolbox 的基础上,提供遗传算法和直接搜索的基

11、本功能。使用遗传算法工具箱的两种方法:直接在命令窗口使用函数。 x fval = ga(fitnessfun, nvars, options),2. 图形界面互动操作方法。可选内部函数ackleyfcn或者rastriginsfcn,Rastrigins Function,可以设置参数来调整显示结果,直接搜索算法,同样有两种类似的运行方法,优化工具箱(没有图形操作界面)Optimization Toolbox,线型规划和二次规划求函数的最大值和最小值多目标优化约束条件下的优化非线型方程求解Demo:toolbox/optimization,求解线性规划,线性规划是一种优化方法,Matlab优化

12、工具箱中有现成函数linprog对如下式描述的LP问题求解:,解:编写M文件小xxgh1.m如下:c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6; A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08; b=850;700;100;900; Aeq=; beq=; vlb=0;0;0;0;0;0; vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),解: 编写M文件xxgh2.m如下: c=6 3 4; A=0 1 0;

13、 b=50; Aeq=1 1 1; beq=120; vlb=30,0,20; vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),信号处理工具箱Signal Processing Toolbox数字和模拟滤波器设计、应用及仿真谱分析和估计FFT、DFT等变换参数化模型,学科前沿最新的工具箱, 模糊控制逻辑工具箱 友好的交互设计界面,自适应神经-模糊学习、聚类以及Sugeno推理。 神经网络工具箱 神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。,工具箱的扩充功能:,用户可以修改工具箱中的函数,更为重要的是用

14、户可以通过编制 m文件来任意地添加工具箱中原来没有的工具函数。此功能充分体现了matlab语言的开发性。,二、通用工具箱,Matlab主工具箱前面课程所介绍的数值计算、符号运算、绘图以及句柄绘图都是matlab主工具箱的内容,是matlab的基本部分,也是我们课程的重点。Matlab主工具箱位于: c:matlabtoolboxmatlab matlab主工具箱是任何版本的matlab都不可缺少的。,除toolboxmatlab之外的工具箱,在比较完整的专业版matlab语言中有20多个工具箱。这些工具箱是需要单独选择购买的。matlab主工具箱共有31个函数库datafun 数据分析函数库s

15、onnds 声音处理函数库dde 动态数据交换函数库elfun 初等数学函数库specmat 特殊矩阵函数库,elmat 初等矩阵和时间函数库funfun 函数功能和数学分析函数库general 通用命令函数库graphics 通用图形函数库iofun 底层输入输出函数库lang 语言结构函数库matfun 矩阵线性代数函数库ops 运算符和逻辑函数库plotxy 二维绘图函数库plotxyz 三维绘图函数库,color 颜色和光照函数库polyfun 多项式函数库sparfun 稀疏矩阵函数库strfun 字符串函数库demos matlab演示函数库Matlab6 新增函数库:uitool

16、s 图形界面函数库datatypes 数据类型函数库graphics 句柄绘图函数库graph3d 三维绘图,各函数库中的函数可用help 函数库名查询,或type 函数名方法查询例:help plotxyTwo dimensional graphics.Elementary X-Y graphs. plot - Linear plot. loglog - Log-log scale plot. semilogx - Semi-log scale plot. semilogy - Semi-log scale plot. fill - Draw filled 2-D polygons.,Gra

17、ph annotation. title - Graph title. xlabel - X-axis label. ylabel - Y-axis label. text - Text annotation. gtext - Mouse placement of text. grid - Grid lines. See also PLOTXYZ, GRAPHICS.,2. 符号运算工具箱,主要功能以符号为对象的数学。在大学教学中,符号数学是各专业都能用到的。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。特点: 运算对象可以是没赋值的符号变量 可以获得任意精度的解,符号运算的功

18、能,符号表达式、符号矩阵的创建符号可变精度求解符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程,例如:z =a*t2+b*t+c;r =solve(z,t) 对缺省变量求解r =1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2),对任意变量求解r =solve(z,b)r =-(a*t2+c)/tr =solve(z,c)r =-a*t2-b*tr =solve(z,a)r =-(b*t+c)/t2,3. Simulink动态仿真工具箱,simulink工具箱简介simulink 是实现动态系统建模、仿真和分析的一个集成环

19、境,使得matlab的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。大部分专用工具箱只要以matlab主包为基础就能运行,有少数工具箱(通讯工具箱、信号处理工具箱等)则要求有simulink工具箱的支持。,由于matlab和simulink是集成在一起的,因此用户可以在两种环境下对自己的模型进行仿真、分析和修改。不用命令行编程,由方框图产生m文件 (s函数)。当创建好的框图保存后,相应的m文件就自动生成,这个.m文件包含了该框图的所有图形及数学关系信息。框图表示比较直观,容易构造,运行速度较快。,Simulink优点适应面广:包括线性、非线性系统;离

20、散、连续系统;定性系统。结构和流程清晰:以方块图形式呈现仿真精细、贴近实际可实现物理仿真;计算机仿真;半实物仿真;虚拟仿真;构造仿真。,simulink 的模型: simulink模型在视觉上表现为方框图,在文件上则是扩展名为m的ASCII代码(matlab7是扩展名为mdl的ASCII代码);在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。simulink 的一般结构:,输入,系统,输出, 仿真原理当在框图视窗中进行仿真的同时,matlab 实际上是运行保存于simulink内存中s函数的映象文件,而不是解释运行该m文件。s函数并不是标准m文件,它可以是

21、m文件,也可以是c或c+程序,通过一定的规则让simulink的模型或模块能够被调用。例:连体弹簧振子运动仿真模型 dblcart1,击三角运行仿真模型, 结构图创建方法一个动态系统的创建过程,就是一个方框图的绘制过程具体步骤:在matlab命令窗口键入simulink或者单击simulink快捷键,例:对满足数学规律的过程进行仿真,结果用示波器来显示,仿真时间t为10个单位。解题思路:本题需要积分模块(积分模块的输入为 ,输出为x)、正弦波模块作为数学处理的模块。,例:模拟一个微分方程 x = -2x + u,.,方框图绘制完毕,一个动态系统模型也就创建好了。选择File菜单Save保存图形

22、,就自动生成一个可在matlab命令窗口运行的m文件。然后就可用simulation菜单中start开始仿真了。,仿真结果 :,三、工具箱和工具箱函数的查询办法,matlab的目录结构目录树c:matlabbinc:matlabexternc:matlabsimulinkc:matlabtoolboxcommc:matlabtoolboxcontrolc:matlabtoolboxsymbolic,.,matlabbin 该目录包含matlab系统运行文件,matlab帮助文件及一些必需的二进制文件。matlabextern 包含MATLAB与 C, FORTRAN 语言的交互所需的函数定义和

23、连接库。matlabsimulink 包含建立simulink MEX-文件所必需的函数定义及接口软件。matlabtoolbox 各种工具箱,Math Works公司提供的商品化matlab工具箱有30多种。toolbox目录下的子目录数量是随安装情况而变的。,2. 工具箱matlab toolbox工具箱在windows下由目录检索得到。也可以在matlab下得到,启动matlab后 cd_ . matlab缺省目录是bin,回到 matlab目录下 cd_toolbox,dir 工具箱清单. compiler fixpoint lmi nag qft . control fuzzy lo

24、cal ncd robust ada symbolic dspblks hosa matlab nnetsignal uitools codegen fdident ident mpcoptim simulink wavelet comm finance splinespde esmutools stats,3. 工具箱函数清单的获得所有工具箱中都有函数清单文件contents.m,可用各种方法得到工具箱函数清单 执行在线帮助命令 help 工具箱名称 列出该工具箱中contents.m的内容,显示该工具箱中所有函数清单 例如: help symbolic help optim 函数的查询:h

25、elp 函数名, 使用type命令得到工具箱函数的清单 type signalcontents type optimcontents 如果在当前工具箱目录下可用 help contents type contents 得到该工具箱的函数清单 由于contents .m为文本文件,可以通过任何文本编辑器打开阅读 如:edit、 word、写字板、记事本,4. matlab函数的查阅与定位,which 函数名 给函数定位例如: which laplaced:matlab42toolboxsymboliclaplace.mwhich fft2d:matlab42toolboxmatlabdatafu

26、nfft2.mwhich polyd:matlab42toolboxmatlabpolyfunpoly.m,which constrd:matlab42toolboxoptimconstr.mwhich plotplot is a built-in function.which 命令只能定位matlab的外部命令,而对内部命令是无效的。matlab内部函数只能通过contents.m工具箱清单文件来查询,matlab函数的查询与定位在matlab命令窗口键入peakstype peaks 得到peaks.m函数的清单 试确定下面matlab函数在工具箱中的位置 if nargin isstud

27、ent meshgrid maxdisp surf axis xlabel,工具箱的添加,很多时候我们要将一个工具箱添加到到系统中来运行。如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可。 如果是单独下载的工具箱,一般情况下仅需要把新的工具箱解压到某个目录(例如toolbox目录下),然后用addpath(对于多个目录的使用genpath()或者pathtool添加工具箱的路径,然后用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。 具体请看工具箱自己代的readme文件。如果是自己编写的工具箱添加方法

28、同上。,2022年11月30日3时0分,70,who 列出在MATLAB工作空间中已有的变量whos 列出驻留变量的同时,还给出维数及性质clear 删除内存中的变量(数据)clc 删除命令窗口的内容(已使用过的命令)home 光标移到命令窗口的左上角clf 删除图形窗口的内容 调出刚才使用过的命令quit 退出MATLAB,11/ 15,MATLAB 常用函数介绍,MATLAB命令窗口的部分通用命令,其它相关软件,Maple Maple是Waterloo Maple Inc.(简称Maplesoft)开发的商业计算机代数系统,用于快速计算、开发设计表单、教学基本概念或建立高保真模拟模型等。最

29、新版本是2010年4月发布的第14版,分Student(学生版)、Academic(高校版)、Professional(专业版)和Personal(个人版)。,其它相关软件,Mathematica Mathematica是斯蒂芬沃爾夫勒姆开发的技术运算软件,开发工作现由Wolfram Research公司负责。最新版本是2010年11月发布的Mathematica 8,LabVIEW LabVIEW是美国国家仪器公司开发的可视化编程平台,主要用于数据采集,仪器控制和工业自动化。最新版本是2010年8月发布的LabVIEW 2010,FreeMatFreeMat是一个与MATLAB和互動式數據語

30、言(IDL)很类似的数值计算平台及程序语言。最新版本是2009年10月发布的FreeMat 4.0,GNU OctaveGNU Octave是一种主要用于数值计算的高级语言。它除了提供用数值方法解决线性和非线性问题的命令行界面,还提供了一种与MATLAB大抵兼容的语言。最新版本是2010年1月发布的3.2.4。,Scilab Scilab是一个交互性的数值运算平台,主要用于工程和科学应用方面,例如航空航天、汽车、能源、金融、化学、生物、医学、国防等。最新版本是5.3.3。,ScicosLabScicosLab是由一些曾在INRIA和ENPC参与Scilab开发的研究人员,在Scilab BUI

31、LD4版本的基础上开发出來的GTK+版本,它集成了建模/模拟工具Scicos及其它数量众多的工具箱,被认为是“惟一一款可以与商业软件MATLAB/Simulink及MATRIXx/SysstemBuild媲美的开源软件”。最新稳定版本是4.3。,MATLAB程序设计基础,MATLAB语言的基本要素MATLAB语言的核心矩阵单元型数据和结构型数据M文件流程控制语句,2022年11月30日3时0分,79,MATLAB语言的基本要素,变量 变量不需要事先声明,也不需要指定变量类型,它会自动根据所赋予变量的值或对变量的操作来确定变量的类型;赋值过程中,如果变量已存在,则用新值代替旧值,以新的类型代替旧

32、的类型。 变量的命名规则:变量名区分大小写;变量名长度不超过31位,第31位之后的字符被忽略;变量名以字母开头,变量名中可以包含字母、数字、下划线,但不能使用标点。 变量一般为局部变量,即仅在其调用的M文件内部有效;若要定义全局变量,须在变量前加关键字global。,Matlab语言主要是由几个基本要素构建而成的,其中包括变量、常量、数值、字符串、运算符及标点等。,回到主目录,2022年11月30日3时0分,80,常量 matlab中预定义的一些特殊的量。 i,j 虚数单位 Realmin 最小的正浮点数, pi 圆周率 Realmax 最大的浮点数, eps 浮点运算的相对精度 Inf 无穷

33、大 NaN Not-a-Number ,表示不定值 例如:pians = %ans是默认的结果变量 3.1416,2022年11月30日3时0分,81,1/0Warning: Divide by zero.ans = Inf0/0Warning: Divide by zero.ans = NaN,2022年11月30日3时0分,82,定义变量时应避免与常量名相同,如果改变了某个常量的值,可以用“clear+常量名”命令来恢复该常量的初始设定值。,pi=1pi = 1clear pipians = 3.1416,2022年11月30日3时0分,83,数值 数值缺省为实数保留小数点后4位浮点数表示

34、。其输入格式与C语言一致:如:9 -73 0.1999 1.475e6 输出格式由format命令控制,只是影响屏幕显示效果,不影响内部存储和计算。下面以pi为例。,format long;pians = 3.14159265358979format long e;pians = 3.141592653589793e+000format long g;pians = 3.14159265358979,2022年11月30日3时0分,84, z=2*exp(pi/3i)z = 1.0000 + 1.7321i,Matlab语言还提供了复数的表达和运算功能。复数的基本单位表示为i或j。例如: 如果

35、是表达式,必须在虚部的数值与i、j之间使用乘号。, sin(pi/3)+cos(pi/3)j? sin(pi/3)+cos(pi/3)j Error: Unexpected MATLAB expression. sin(pi/3)+cos(pi/3)*jans = 0.8660 + 0.5000i,2022年11月30日3时0分,85,字符串字符串用单引号输入或赋值;字符串的每个字符都是都是字符数组的一个元素;字符串和字符数组基本上等价。, s=i love yous =i love you, size(s)ans = 1 10, s(2)ans = s(10)ans =u,字符串的每个字符(

36、包括空格)都是字符数组的一个元素。在matlab中,字符串与字符数组或矩阵基本上是等价的。,2022年11月30日3时0分,86,如果在字符串内使用单引号时,可以用连续两个单引号表示。例如:,字符串之间的转换函数: double 字符串转换为数值代码 num2str 数字转换为字符串 int2str 整数转换为字符串 mat2str 矩阵转换为字符串 str2num 转换字符串为数字, double(s) %s=i love youans = 105 32 108 111 118 101 32 121 111 117, s=its goods = its good,2022年11月30日3时0

37、分,87, a=1:5a = 1 2 3 4 5 b=num2str(a)b =2 3 4 5 a*2ans = 2 4 6 8 10 b*2ans = 98 64 64 100 64 64 102 64 64 104 64 64 106,2022年11月30日3时0分,88,matlab对字符串的操作与C语言中的几乎完全相同: strcat 链结串 strcmp 比较串 strvcat 垂直链结串 strncmp 比较串的前n个字符 findstr 在其他串中找此串 upper 转换串为大写 lower 转换串为小写 blanks 生成空串 deblank 移去串中空格 ,例如:把前面的字符

38、串s转化成大写。s=“it good” upper(s)ans =ITS GOOD,执行字符串的功能用eval来实现。t=1/(a*b-1);a=2;b=3;c=eval(t) % 可以在一行中表示。c = 0.2000,2022年11月30日3时0分,89,运算符 在matlab语言中运算符包括算术运算符、关系运算符和逻辑运算符。其中算术运算符见右表: 其中点运算是指操作元素点对点的运算,也就是说矩阵内元素对元素之间的运算,点运算要求参与运算的变量在结构上必须是相似的。例如:,2022年11月30日3时0分,90, a=1,2,3;4,5,6;7,8,9a = 1 2 3 4 5 6 7 8

39、 9 b=1 2 34 5 67 8 9b = 1 2 3 4 5 6 7 8 9, c=a*bc = 30 36 42 66 81 96 102 126 150 d=a.*bd = 1 4 9 16 25 36 49 64 81,思考:题目:通过描点法得到sin(x)xcos(x)函数在0-pi区间上的曲线。提示:通过点运算获得。(附件diancheng。txt),2022年11月30日3时0分,91,Matlab语言的关系运算符如右表: 当判断一个矩阵是否为空矩阵时,一般不用“=”,而应当使用函数isempty。,2022年11月30日3时0分,92,Matlab语言的逻辑运算符如右表:

40、进行逻辑判断时,所有非零数值均被认为为真,而零为假;在逻辑判断结果中,判断为真时输出1,为假时输出0.三种运算符中,它们的优先级关系先后为:算术运算符、关系运算符、逻辑运算符。,2022年11月30日3时0分,93,a=1:3;4:6;7:9;x=5;y=ones(3)*5;xa=xb=0 1 0;1 0 1;0 0 1;,ab=a&bab = 0 1 0 1 0 1 0 0 1nb=bnb = 1 0 1 0 1 0 1 1 0,2022年11月30日3时0分,94,a=magic(5);a(:,3)=zeros(5,1)a = 17 24 0 8 15 23 5 0 14 16 4 6 0

41、 20 22 10 12 0 21 3 11 18 0 2 9a1=all(a(:,1)10)a1 = 0,a2=all(a3)a2 = 1 1 0 0 0a11=any(a(:,1)10)a11 = 1a22=any(a10)a22 = 1 1 0 1 1,2022年11月30日3时0分,95,标点 在matlab中一些标点符号也被赋以特殊的意义,或表示要进行一定的运算等,如下表:,2022年11月30日3时0分,96,下面对上表中各标点作进一步的介绍。 首先,用冒号来定义行向量。基本格式:xx1:step:x2(初始值:步长:尾元素数值限) xx1:x2 (默认步长为1)注意:这里强调x2

42、为尾元素数值限,而不是尾元素值。当x2-x1恰为步长的整数倍时,x2才能成为尾值。例如:,2022年11月30日3时0分,97, a=1:2:12a = 1 3 5 7 9 11 a=12:-2:1a = 12 10 8 6 4 2 a=1:6a = 1 2 3 4 5 6 a=2:2:12a = 2 4 6 8 10 12,2022年11月30日3时0分,98,其次,通过使用冒号,可以截取指定矩阵中的部分。例如:, a=1:18;a=reshape(a,3,6) %重组矩阵a = 1 4 7 10 13 16 2 5 8 11 14 17 3 6 9 12 15 18 a1=a(:,1:3)

43、 %提取矩阵a的第1到3列元素组成的子矩阵。 a1 = 1 4 7 2 5 8 3 6 9 a2=a(1:2,3:end)a2 = 7 10 13 16 8 11 14 17,思考:B1=a(1:3,:)?,2022年11月30日3时0分,99,分号在matlab语言中所起的作用是作为分隔行的标志,这里包括在矩阵定义中对行的区分以及在程序代码中对行的划分。在矩阵定义中,分号之间的数据被认为是矩阵的同一行。对于以分号结尾的行语句,matlab语言不会把其运算结果显示在命令窗口中。 逗号主要起两个作用。其一是逗号是函数参数的分隔符,也是矩阵下标的分隔符。其二是逗号也是区分矩阵列的标志,在同一行中,

44、逗号分隔开的是各个列。 括号是调整运算先后次序的标点,可以通过引用括号来调整运算次序。 矩阵的定义需要使用中括号。此外,中括号可以表示空矩阵,并通过该空矩阵实现对矩阵的部分删除。以下举例:,2022年11月30日3时0分,100, a=1,2,3,4;5,6,7,8;4,3,2,1;8,7,6,5a = 1 2 3 4 5 6 7 8 4 3 2 1 8 7 6 5 a(:,1:2)=a = 3 4 7 8 2 1 6 5 b=a(1 3,:)b = 3 4 2 1,2022年11月30日3时0分,101,大括号是单元型数据所特有的标点。后面介绍。 小数点“.”,它起到了数学符号的作用;而作为

45、点运算的标志符,它又构成了各种各样的点运算;最重要的是它可作为结构型数组应用时的专有符号。 “”为matlab语言中的续行符,但是该续行符只能出现在各个语义群之间,也就是说不能出现在变量名之间,否则出错。例如:, a=sin(pi/4)+cos(pi/4)-tan(pi/4).+cot(pi/4)a = 1.4142 a=sin(pi/4)+cos(pi/4)-t.an(pi/4)? an(pi/4) |Error: Unexpected MATLAB expression.,2022年11月30日3时0分,102,在matlab语言中,一行内在“%”之后的文字均被认为是对M文件或程序代码的解

46、释部分。 “!”可以在命令窗口直接调用操作系统命令,例如DOS命令,并将结果展示在命令窗口中,比如在命令窗口中调用“!dir c”,以显示C盘的文件列表。 单引号作为字符串的标示符而存在,同时,它在矩阵运算中也表示矩阵的转置运算及复数的共轭值。,2022年11月30日3时0分,103, a=1,2,3,4;5,6,7,8a = 1 2 3 4 5 6 7 8 aans = 1 5 2 6 3 7 4 8 s=3-4i;sans = 3.0000 + 4.0000i,回到主目录,2022年11月30日3时0分,104,MATLAB语言的核心矩阵,矩阵的生成直接输入小矩阵(最简便的方法) 注意点:

47、输入矩阵时要以“ ”为其标识,即矩阵的元素应在“”内部。矩阵的同行元素之间可由空格或“ ,”分隔,行与行之间用“;”或回车符分隔。矩阵元素可为运算表达式。无任何元素的空矩阵也合法。,回到主目录,2022年11月30日3时0分,105,A = 1,2,3; 4,5,6; 7,8,9A = 1 2 3 4 5 6 7 8 9,a=1 2 34 5 67 8 9a = 1 2 3 4 5 6 7 8 9,创建带有运算表达式的矩阵:b=sin(pi/3),cos(pi/4);log(9),tan(pi/4);% 什么样的结果?,2022年11月30日3时0分,106,利用中括号将小矩阵合成一个大矩阵

48、b=1,2;3,4; a=b,b;b2,b*3a = 1 2 1 3 3 4 2 4 7 10 3 6 15 22 9 12从外部文件引用矩阵(excel,txt) (shuju1,shuju2),2022年11月30日3时0分,107,特殊矩阵的生成常用的特殊矩阵 空 阵: 单 位 阵:eye(m,n); eye(m) 零 矩 阵:zeros(m,n); zeros(m) 全 1 阵:ones(m,n); ones(m) 对 角 阵:对角元素向量 V=a1,a2,an A=diag(V) 随 机 阵:rand(m,n) 产生一个mn的均匀分布的随机矩阵,2022年11月30日3时0分,108

49、, eye(2,3)ans = 1 0 0 0 1 0 zeros(2,3)ans = 0 0 0 0 0 0 ones(2,3)ans = 1 1 1 1 1 1v=5 6 7;a=diag(v)a = 5 0 0 0 6 0 0 0 7, eye(2)ans = 1 0 0 1 zeros(2)ans = 0 0 0 0 ones(2)ans = 1 1 1 1,如果已知a为方阵,则v=diag(a)可以提取a的对角元素构成向量v。,2022年11月30日3时0分,109,其他特殊矩阵 compan 友矩阵函数 magic 魔方矩阵 hankel Hankel矩阵 rosser 对称特征值

50、测试矩阵 hilb Hilbert矩阵 pascal Pascal矩阵 invhilb 反Hilbert矩阵 vander 范德蒙矩阵 其中,compan(c),结果是生成一以向量c为系数的多项式的特征矩阵。hilb所生成的hilbert矩阵的特点是矩阵中的元素值为1/(i+j-1)。,2022年11月30日3时0分,110,单元型数据和结构型数据,单元型变量 单元型变量是matlab语言中较为特殊的一种数据类型。本质上讲,单元型变量为任意类型的多维数组。 单元型变量可有两种方式:一种是用赋值语句直接定义,另一种是由cell函数预先分配存储空间,然后对单元元素逐个赋值。 在直接赋值过程中,与在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号