1 / 44

MATLAB 语言

MATLAB 语言. 一些命令: 1. “show workspace” 命令 是打开 MATLAB 的工作空间浏览器的命令。工作空间浏览器能够显示可进行操作的变量的集合以及各变量的各种属性。 也可以用键入命令的方式 Who 仅显示变量名 Whos 显示同工作空间一样的信息 2. Show Graphics Property Editor 显示图形属性的编辑器. 哈尔滨工程大学理学院. MATLAB 语言. 3. “set path” 命令 该命令允许用户编辑 m 文件的目录。也可以用 MATLAB 提供的命令来完成。.

Download Presentation

MATLAB 语言

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MATLAB语言 一些命令: 1. “show workspace” 命令 是打开MATLAB的工作空间浏览器的命令。工作空间浏览器能够显示可进行操作的变量的集合以及各变量的各种属性。 也可以用键入命令的方式 Who 仅显示变量名 Whos 显示同工作空间一样的信息 2. Show Graphics Property Editor 显示图形属性的编辑器 哈尔滨工程大学理学院

  2. MATLAB语言 3. “set path”命令 该命令允许用户编辑m文件的目录。也可以用MATLAB提供的命令来完成。 哈尔滨工程大学理学院

  3. MATLAB语言 数据格式表 哈尔滨工程大学理学院

  4. MATLAB语言 以上的数据格式是在“Preference”对话框的“Command Window选项卡中设定。也可用命令直接给数据定义格式 命令形式为:format 类型 此格式命令只改变显示的数据,并不改变MATLAB的存储数据时的格式。 2.1 MATLAB的运行方式 有两种运行方式: 一、直接交互命令行操作方式 二、.m文件编辑运行操作方式 哈尔滨工程大学理学院

  5. MATLAB语言 在MATLAB中.m文件分为两种: 一、类似DOS的批处理文件,包含了一连串的MATLAB的指令,既不接受输入参数,也不返回输出参数,称为脚本(script)。 二、函数(Function),函数接受用户的输入参数,执行函数的具体运算,最后输出结果。 1.脚本文件:包括注解和指令两部分。注解部分必须以“%”开头。脚本文件使用与存放的变量和数据都在工作空间中,指向工作空间来操作。 2.函数文件:该文件主要包含以下五部分 哈尔滨工程大学理学院

  6. MATLAB语言 (1)函数定义行:位于函数的第一行,格式为: function [A1,A2,A3,…]=函数名(B1,B2,B3,…) A1,A2,A3,…为输出参数,B1,B2,B3,…为输入参数 如无输入或输出参数,可以不写相应的参数。 例如:function tide(x1) function [y1,y2]=tide( ) 注:函数文件的名称必须与函数名称或函数文件中的主函数名称相同。 (2)H1行:H1行紧接着函数定义行简要说明函数名和功能,是帮助文本的第一行,以“%”开始。 lookfor function-name 命令找到相关函数,但只显示H1行 哈尔滨工程大学理学院

  7. MATLAB语言 (3)函数说明:函数说明位于H1行后,用来具体说明函数的功能和用法,同样以“%”开头。 Help direction-name 就可显示该目录下所有函数的H1行 (4)函数主体:函数主体在函数说明后,是所有进行具体运算和赋值程序的代码。 (5)注解:在MATLAB中,还可以对某一行的具体内容进行注解。 注:MATLAB通过判断.m文件的第一行是否有关键字“function”来识别该文件是否为函数文件。如果一个m文件是脚本文件,那么在该文件中不允许再出现函数定义语句。但可以调用在同一工作空间的函数文件中定义的函数 哈尔滨工程大学理学院

  8. MATLAB语言 MATLAB数据类型 MATLAB定义了六种数据类型: 字符 char 双精度数值 double 稀疏数据 sparse 存储型 storage 单元数组 cell 结构数组 struct storage又包括:int8(8位整形)unit8(无符号8位) int16 unit16 int32 unit32 该类型只用于内存的有效存储,可以对这种类型的数据进行基本操作,但不能对它们执行任何数学运算,如进行要转换数据类型。 一般常用的为:char double 哈尔滨工程大学理学院

  9. MATLAB语言 • 变量与常量 • 变量 • MATLAB语言并不要求对所使用变量进行事先声明,也不需要指定变量类型,它会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型;在赋值过程中,如果变量已经存在,MATLAB语言将使用新值代替旧值,并以新的变量类型代替旧的变量类型。 • 命名原则 • *变量名区分大小写;*变量名长度不超过31位; • *变量名以字母开头,变量名中可以包含字母、数字、下划线,但不能使用标点。 哈尔滨工程大学理学院

  10. MATLAB语言 在没有特殊声明的情况下,MATLAB语言将所识别的一切变量视为局部变量。若要定义全局变量,在给该变量前加关键字global。一般全局变量常用大写的英文字符表示。 MATLAB语言中的常量 哈尔滨工程大学理学院

  11. MATLAB语言 字符、字符串 1. 在MATLAB中,所有的字符串都用单引号设定后输入或赋值。 2. 字符串的每个字符(包括空格)都是字符数组的一个元素。 3. 在MATLAB中,字符串和字符数组(或矩阵)基本上是等价的。 4. 字符数组的生成:函数char可以用来生成字符数组(或矩阵)。 5. 字符串和数组之间的转换 哈尔滨工程大学理学院

  12. MATLAB语言 • 字符串转换为数值代码,此功能可由函数double来实现; • 字符数组转换为字符串,此功能可由函数cellatr来实现; • 数值数组和字符串之间的转换函数表 哈尔滨工程大学理学院

  13. MATLAB语言 • 5.执行字符串 • 执行字符串的功能在MATLAB中由函数eval来实现 • 向量 • 向量的生成 • 直接输入向量 格式:a=[s1,s2,s3] 注意:用空格和逗号分隔生成行向量; 用分号分隔生成列向量 哈尔滨工程大学理学院

  14. MATLAB语言 • 利用冒号表达式生成向量 格式:a=s1:s2:s3 S1 为起始值,s2为步距,s3为终止值 如果省略s2的值,则步距取默认值1 • 线性等分向量的生成 格式:d=linspace(x1,x2,n) 作用:生成通过维数定义的等间隔为(x2-x1)/n的向量 • 对数等分向量的生成 格式:d=logspace(x1,x2,n) 作用:生成对数等分向量。d(1)=10x1, d(n)=10x2 哈尔滨工程大学理学院

  15. MATLAB语言 • 2. 向量的运算 • 点积:由函数dot来实现 格式:dot(a,b) 或 dot(a,b,dim) • 叉积: 由函数cross实现 格式:d=cross(a,b,dim) 作用:返回a和b的dim维向量的叉积。a和b必须同维。如果dim不写,则默认dim=3 • 混合积:两函数套用 例:dot(a,cross(b,c)) 哈尔滨工程大学理学院

  16. MATLAB语言 • 2.4 矩阵与数组 • MATLAB中最重要的功能就是对矩阵的运算。此时矩阵可以是数学意义上的矩阵,也可以是标量或向量。标量为1×1矩阵,向量为一个一维的矩阵。MATLAB可以进行实、复数矩阵的数学计算。 • 矩阵的输入规则: • 矩阵的元素要写在方括号中; • 每行内的元素用逗号或空格分开; • 行与行之间用分号分开或用回车符分隔。 • 例如:x=[1,2,3;4,5,6;7,8,9] 哈尔滨工程大学理学院

  17. MATLAB语言 4. 矩阵大小可不预先定义; 5. 矩阵元素可为运算表达式; 6. 无任何元素的空矩阵亦合法; 7. 若不想获得中间结果,可以“;”结束。 • 矩阵的运算 • 矩阵的四则运算 • 矩阵的加减 “+”、“-” :要求加减的两矩阵同阶 • 对应元素相加;标量与矩阵的加减法是矩阵的每个元素与该标量相加减。 哈尔滨工程大学理学院

  18. MATLAB语言 • 矩阵的乘法, “ * ” • 矩阵的除法 • 左除 x=A\B 是方程A*X=B的解 • 右除 x=B/A 是方程X*A=B的解 • 其中 B/A=(A’\B’) • 2. 矩阵与常数间的运算 • 是同此矩阵的各元素之间进行运算。 • 3. 矩阵的逆运算 • 格式:D=inv(a) 哈尔滨工程大学理学院

  19. MATLAB语言 • 4. 矩阵的乘方运算 • 格式:A^B • 作用: (1) 如果A和B都是矩阵,则不能运算; • (2) 如果B是个正整数,结果是A自乘B次; • (3)如果B是个负整数,则首先对A取逆,然后它自乘B次 • (4) 如果B是个标量,则对A中每个元素B次方。 • 矩阵的转置 • 格式:A‘ 矩阵为复矩阵,则转置为共轭转置。 哈尔滨工程大学理学院

  20. MATLAB语言 • 数组的运算 • 数组的加减:对应元素相加减,符号+ - • 数组的乘法:对应元素相乘,要求A,B必须同维,除非一个为标量。 • 格式:A.*B • 3. 数组的除法:同乘法 • 格式:右除 A./B 左除 A.\B • 4. 数组的乘方:格式:A.^B • 说明:如果A和B都是数组,则表示 且A和B长度相同;如果B为标量,则 哈尔滨工程大学理学院

  21. MATLAB语言 • 在MATLAB中矩阵的输入有下列方式: • 显示列表输入; • 外部文件加载; • 在.m文件中创建; • 通过MATLAB函数库生成。 • 注:■输入时,元素可以为常数,也可以为变量,表达式或函数。 • ■其维数可以扩大或缩小。 哈尔滨工程大学理学院

  22. MATLAB语言 • 显示列表输入:按矩阵的格式规定输入,对于简单的矩阵非常方便。对复杂的矩阵,可将矩阵元素分行输入,此时用回车键代替分号。 • 外部数据文件加载:用户可以使用load命令加载外部数据文件来创建矩阵。例如将生成的矩阵保存为file.mat文件,然后在命令窗口中用load file.mat 加载 • 在.m文件中创建:如果用户将一个数据文件保存为.m文件,则用户在命令窗口中输入文件名,将显示矩阵。 • 通过MATLAB函数库生成:MATLAB为用户提供了四个产生基本矩阵的函数和一些能够产生特殊矩阵的函数。 哈尔滨工程大学理学院

  23. MATLAB语言 四个产生基本矩阵的函数: zeros 函数 ones 函数 rand 函数 randn 函数 产生特殊矩阵的函数有: magic 函数 diag 函数 triu 函数 eye 函数 size 函数 (1)zeros 函数 作用:能够生成元素全为零的矩阵 格式:矩阵名=zeros(m,n) (2)ones函数 作用:能够生成元素全为1的矩阵 哈尔滨工程大学理学院

  24. MATLAB语言 格式:矩阵名=ones(m,n) (3)rand 函数 作用:能够生成统一分布随机元素的矩阵,元素数值范围为(0.0 , 1.0) 格式:矩阵名=rand(m,n) (4)randn 函数 作用:能够生成正态分布随机元素的矩阵,元素数值范围为(0.0 , 1.0) 格式:矩阵名=rand(m,n) 哈尔滨工程大学理学院

  25. MATLAB语言 (5)magic 函数 作用:能够自动生成一种特殊的n阶矩阵,这些矩阵的行、列和对角线上的元素之和都相等。 格式:矩阵名=magic(n) (6)diag 函数 作用:自动生成指定矩阵的对角矩阵。 格式:Y=diag(D) (7)triu 函数 作用:自动生成指定矩阵的上三角矩阵。 格式:Y=triu(D) 哈尔滨工程大学理学院

  26. MATLAB语言 (8)tril 函数 作用:自动生成指定矩阵的下三角矩阵。 格式:Y=tril(D) (9)eye 函数和 size 函数 作用:size函数用来返回指定矩阵的行数和列数。 eye 函数产生指定行数和列数的单位矩阵。 两个函数共同使用可产生与指定矩阵同阶的单位矩阵。 格式:Y=eye(size(D)) (10)repmat 函数 哈尔滨工程大学理学院

  27. MATLAB语言 作用:创建m×n维块矩阵,每一块为已知矩阵。 格式:Y=repmat(D,m,n)或Y=repmat(D,[m,n]) 矩阵组合 一个矩阵中的元素也可以时一个小矩阵。但此时应该注意维数的问题。 (11)reshape 函数 格式:Y=reshape(D,m,n) 作用:用来对矩阵D进行变维。m,n为变维后的矩阵的行数和列数,m×n必须与原矩阵的元素个数相等。 哈尔滨工程大学理学院

  28. MATLAB语言 冒号表达式-给行向量赋值 格式:a=s1:s2:s3 s1为起始值,s2为步距,s3为终止值。 如果s2为负值,则要求s1大于s3的值,否则产生一个空向量。如果省略s2的值,则步距取默认值1 注:冒号主要用于以下几个方面 (1)输入行向量; (2)从向量、矩阵和数组中挑选指定的行、列或元素; (3)产生简单的表格。 哈尔滨工程大学理学院

  29. MATLAB语言 • 矩阵的基本函数运算 • 特征值函数--eig 和 eigs • 格式:B=eig(A) • 返回矩阵A的特征值,并依次构成B的列向量。 • 格式:[F,D]=eig(A) • 返回两个矩阵F和D,其中F为特征向量矩阵,D为特征值矩阵。 • 格式: [F,D]=eig(A, ‘nobalance’) • 同上,只是这种方式不采用预先平衡的方式。 哈尔滨工程大学理学院

  30. MATLAB语言 格式:D=eig(A,B) 若B是一个与A同阶的方阵,则该格式将返回一个表示广义特征值的向量。 eigs 函数是使用迭代法求解特征值和特征向量的函数。 2. 秩函数:格式:rank(D) 3. 迹函数: 矩阵所有对角线上元素的和称为矩阵的迹。 格式:trace(D) 哈尔滨工程大学理学院

  31. MATLAB语言 特殊矩阵-空阵 在MATLAB中定义[ ]为空阵。一个被赋予空阵的变量具有一下性质: 在MATLAB工作内存中确实存在被赋空阵的变量; 空阵中不包括任何元素,它的阶数是0 x 0; 空阵可以在MATLAB的运算中传递; 可以用clear从内存中清除空阵变量。 注意:空阵不是“0”,也不是“不存在”。它可以用来使矩阵按要求进行缩维。 例如:a(:,[2,5])=[] 哈尔滨工程大学理学院

  32. MATLAB语言 • 多项式运算 • 多项式的表示方法: • 用一下的行向量表示:P=[ a0, a1, ……,an] • 用函数poly2sym可以将多项式向量表示成为符号形式。 • 系数向量的直接输入法。 • 特征多项式输入法--由函数poly实现 • 由根创建多项式--由函数poly实现 哈尔滨工程大学理学院

  33. MATLAB语言 2. 求多项式的值-两种形式:一种在输入变量值代入多项式计算时是以数组为单元,此时的计算函数为polyval; 另一种是以矩阵为计算单元,进行矩阵式运算,此时的计算函数为polyvalm。这两种计算在数值上有很大的差别,这主要源于矩阵计算和数组计算的差别。 3. 求多项式的根 一种是直接调用MATLAB的函数roots,求多项式的所有根;另一种是通过建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根。 4. 多项式的乘除法运算 多项式的乘法由函数conv实现; 哈尔滨工程大学理学院

  34. MATLAB语言 多项式的除法由函数deconv来实现。 5. 多项式的微分--函数polyder 6. 多项式的拟合--函数polyfit 调用格式: Polyfit (X, Y, n) 其中X,Y为拟合数据,n为拟合多项式的阶数。 [p, s]=polyfit (X, Y, n) 其中p 为拟合多项式系数向量, s 为拟合多项式系数向量的结构信息。 哈尔滨工程大学理学院

  35. MATLAB语言 哈尔滨工程大学理学院

  36. MATLAB语言 符号运算功能 • 符号表达式的生成 • 与字符串的生成方式一样。但这种方式对空格很敏感。因此,不要在字符间乱加空格符。 • 用sym命令生成 • 格式:f = sym (‘表达式‘) • 3. 用syms命令生成 • 格式:syms 变量 • f = 表达式 哈尔滨工程大学理学院

  37. MATLAB语言 • 符号函数的运算 • 复合函数运算 • 格式:compose(f,g) • 返回当f=f(x)和g=g(y)时的复合函数f(g(y)) • 格式:compose(f, g, z) • 返回的复合函数以z为自变量。 • 2. 反函数的运算 • 格式:g = finverse (f) 哈尔滨工程大学理学院

  38. MATLAB语言 • 符号矩阵的运算 • 此运算和矩阵的运算基本一致 • 符号矩阵的简化 • 因式分解 • 格式:factor(s) • 2. 符号矩阵的展开 • 格式:expand(s) • 3. 同类式合并 • 格式:collect (S, v) 哈尔滨工程大学理学院

  39. MATLAB语言 将符号矩阵S中的各元素的v的同幂项系数合并。 格式:collect (S) 对默认变量进行同类项合并 4. 符号简化 格式:simple (S ) 寻找符号矩阵或符号表达式的最简型 格式:simplify (S) 简化符号矩阵的每一个元素 哈尔滨工程大学理学院

  40. MATLAB语言 5. 分式通分 格式:[n, d] = numden (A) 把A的各元素转换为分子和分母都是整系数的最佳多项式型。 n为分母,d为分子 6. 符号极限 格式:limit (F, x, a) 计算符号表达式F在x-a条件下的极限值 7. 符号积分 格式:int (S), int(S, v), int (S, a, b), int(S, v, a, b) 8. 符号函数的简易绘图函数 explot 格式:ezplot(f, [xmin, xmax], fig) 哈尔滨工程大学理学院

  41. MATLAB语言 二维图形 基本绘图命令 1 格式:plot (y) , plot(x, y), plot (x, y, s) 哈尔滨工程大学理学院

  42. MATLAB语言 双纵坐标绘制二维图的函数--plotyy 格式:plotyy (x1, y1, x2, y2, fun1, fun2) fun可以为plot, semilogx, semilogy, loglog 如果要对图中曲线的线型、颜色以及数据点的标识加以控制,应该使用后面介绍的句柄图形控制来完成。 三维图形 • plot3 函数 • 格式:plot3 (x1, y1, z1, s1, x2, y2, z2, s2, …) • 2. 网图函数 • 格式:mesh( x, y, z, c) 三维网格图 • meshc 将网格与等高线结合;meshz 屏蔽的网格图 哈尔滨工程大学理学院

  43. MATLAB语言 meshgrid 生成网格点 格式:[X, Y]=meshgrid(x, y) 3. 绘制着色图函数--surf 格式:surf (x, y, z, c) 图形标注 title 为图形添加标题;xlabel,ylabel 为x,y坐标轴添加标注 格式:xlabel(’标注‘,’属性1‘,属性值1,…) 文本标注 格式:text(x,y,’标注文本及控制字符串‘) 格式:gtext( ’标注文本及控制字符串‘) 哈尔滨工程大学理学院

  44. MATLAB语言 图例标注 格式:legend(‘标注1’,‘标注2’,…‘定位代号’) 0:自动定位,使得图标与图形重复最少。 1:置于图形的右上角(默认值)。 2:置于图形的左上角。 3:置于图形的左下角。 4:置于图形的右下角。 -1:置于图形的右外侧。 图形保持:hold on/off 哈尔滨工程大学理学院

More Related