《MATLAB 基础 》
实验指导书
前言
MATLAB 是一种集数值计算、可视化建模、仿真和图形处理等多种功能于一体的优秀编程、仿真工具,被誉为“巨人肩膀上的工具”、“演算纸式的编程语言”,是从事科学研究、工程计算的广大科技工作者、理工类高校师生确认为必须掌握的计算工具,是从理论通向实际的桥梁,也是最可信赖的科技资源之一。为了配合学生上机实践,更好掌握 MATLAB 的基本使用技能,了解 MATLAB 的编程风格,以及将所学课程与MATLAB实践相结合,特别编写了本实验讲义。其主要
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
包括:MATLAB入门及基本操作,矩阵的使用及数据可视化方法,脚步文件及函数的编写,以及Simulink仿真模块的使用等。 MATLAB内容丰富,内嵌了许多功能函数。为了方便课堂教学使用,也顾及查阅功能,在书后的索引中按照功能函数对常见MATLAB函数进行了分类,以备读者查阅需要。由于编者水平有限,书中难免存在不妥之处,恳请广大读者指正。同时,我们也会在适当时间进行修订和补充。
目录
实验一 熟悉MATLAB环境 4
实验二 数值数组创建、应用及可视化 7
实验三 字符串数组的使用、简单脚本文件和函数的编写 10
实验四 数据可视化方法 15
实验五 简单数据
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
19
实验六 简单图形用户界面
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
21
附录 MATLAB主要函数指令表(按功能分类) 23
实验一 熟悉MATLAB环境
[实验目的]
1 .熟悉 MATLAB 主界面,并学会简单的菜单操作。
2 .学会简单的矩阵输入与信号输入。
3 .掌握部分绘图函数。
[实验原理]
MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。
用户第一次使用 MATLAB 时,建议首先在屏幕上键入 demo 命令,它将启动 MATLAB 的演试程序,用户可在此演示程序中领略 MATLAB 所提供的强大的运算与绘图功能。也可以键入 help 进行进一步了解。
MATLAB 启动界面如图所示:
操作界面主要的介绍如下:
指令窗( Command Window ),在该窗可键入各种送给 MATLAB 运作的指令、函数、表达式,并显示除图形外的所以运算结果。
历史指令窗( Command History ),该窗记录已经运行过的指令、函数、表达式;允许用户对它们进行选择复制、重运行,以及产生 M 文件。
工作空间浏览器( Workspace Browser ),该窗口罗列出 MATLAB 工作空间中所有的变量名、大小、字节数;并且在该窗中,可对变量进行观察、编辑、提取和保存。
其它还有当前目录浏览器( Current Directory Browser )、 M 文件编辑 / 调试器( Editor/Debugger )以及帮助导航 / 浏览器( Help Navigator/Browser )等,但通常不随操作界面的出现而启动。
利用 File 菜单可方便对文件或窗口进行管理。其中 File | New 的各子菜单, M-file ( M 文件)、 Figure (图形窗口)、或 Model ( Simulink 编辑界面)分别可创建对应文件或模块。 Edit 菜单允许用户和 Windows 的剪切板交互信息。
MATLAB 语言最基本的赋值语句结构为:变量名列表 = 表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“ = ”省略,则 ans 变量将自动建立,例如键入: 1900/81 ,得到输出结果: ans =23.4568 。 MATLAB 中变量命名的原则要求必须以英文字母开头,文件夹名字中可以还包括、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行 MATLAB 中一些莫名的错误可能就是不规范的命名引起的。这种规则包括将来为自己编写的脚本文件、函数文件命名以及为使用的变量命名也应遵循这个规则。
[实验内容]
一.用户工作目录和当前目录的建立和设置
1 .为管理方便,每个用户在使用 MATLAB 前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建应用文件。例如首先打开资源管理器,在 E 驱动器下可以根据自己喜好建立一个新文件夹,但应注意:该文件夹必须以英文开头,文件夹名字中可以包括字母、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行 MATLAB 中一些莫名的错误可能就是不规范的命名引起的,这与 MATLAB 中为变量和文件名命名原则是一致的。尽管 MATLAB\work 允许用户存放用户文件,但最好把它仅作为临时工作目录来使用。
2 .为了用户运行方便,在开始工作前可把用户定义的目录设置为当前目录,方法是可直接在 MATLAB 命令窗口桌面上方通过目录设置栏来实现。
3 .把自己的工作目录加到 MATLAB 搜索路径上,这样可以在任何情况下方便地调用自己的编写文件。 MATLAB 工作时,基本搜索过程为:首先在工作空间,即 MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如 sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的 M 文件存在;如还没有,则在 MATLAB 定义的搜索路径其他目录中,检查是否有该 M 文件存在。设置方法是通过 File 菜单下设置路径对话框进行。
二.熟悉简单的矩阵输入
1 .从屏幕上输入矩阵 A=[1 2 3 ;4 5 6;7 8 9] 回车
A=[1,2,3;4,5,6;7,8,9] 回车
观察输出结果。
2 .试用回车代替分号,观察输出结果。
3 .输入 size(A) ,观察结果。
4 .输入矩阵 B=[9,8,7;6,5,4;3,2,1];回车
输入矩阵 C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入 A B C 回车观察结果。
5 .选择 File | new 菜单中的M-file ,输入 B=[9,8,7;6,5,4;3,2,1] ;保存为 B.M 文件,退出编辑环境。此时在工作环境中使用 B 命令就可调出 B 矩阵。
6 .再试着输入一些矩阵,矩阵中的元素可为任意数值表达式,但注意 : 矩阵中各行各列的元素个数需分别相等,否则会给出出错信息。
7 .输入 who 和 whos 观察结果,了解其作用。
二.常用基本命令的使用
数据文件的存取训练:利用 save 和 load 指令可以方便地把当前工作空间的数据变量保存为数据文件。接题一,输入: save a 回车,表示把当前工作空间的所有变量保存为 a.mat 文件。输入 save a A C 回车,表示把当前内存中的变量 A 、 C 保存为 a.mat 文件。类似的还有 load 命令,实现保存数据变量的装载,执行 clear 命令,然后运行 load a 回车,观察工作空间的变化。 save 、 load 、 clear 命令还有一些其他的应用格式,具体可参看帮助文件。
三.基本序列运算
1 .数组的加减乘除和乘方运算
2 .输入 A=[1 2 3] ,B=[4 5 6],求C=A+B,D=A-B,E=A.*B, F=A./B,G=A.^B, 并用 stem 画出A,B,C,D,E,G。再输入一些数组,进行类似运算。
3 .在命令窗口用 plot 指令粗略描绘下列各函数的波形(其中对于连续信号可取时间间隔为 0.001,可参看下面的a的实例来实现,数学函数 MATLAB 实现参见附录)
a.
实现方法,在命令窗口执行一下指令,可简单描绘出函数曲线:
t=0:.001:3;
y=3-exp(-t);
plot(t,y)
b.
c.
d.
(
在 MATLAB 中用pi来实现)
f.
三. M 脚本文件编写初步用 M 文件编辑器编写脚本文件重新描绘上面函数波形。
实验二 数值数组创建、应用及可视化
[实验目的]
1 .掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别。
2 .掌握
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
数组生成函数和数组构造技法。
3 .进一步熟悉 M 脚本文件编写的方法和技巧。
[实验原理]
数值数组和数组运算 MATALB 核心内容,是 MATLAB 最重要的一种内建数据类型。通常,数组是由一组实数或复数排成的长方阵列 (Array ), 它可以是一维的“行”或“列”,可以是二维的“矩形”,也可是三维的若同维矩形的堆叠,甚至是更高的任意维。而数组运算是指无论在数组上施加什么运算 ( 加减乘除或函数 ), 总认定那种运算对被运算数组中的每个元素 (Element) 平等地时实施同样的操作。这使得计算程序简单、易读,使程序指令更接近教科书上的数学计算公式,并提高了程序的向量化程度,提高计算效率,节省计算机开销。
一维数组的创建可采用逐个元素输入法,这是最简单,但又最通用的构造方法,如: x=[2 pi/2 sqrt(3) 3+5i]; 另外有规律的产生数组可以采用冒号生成法,通用格式是 x = a : inc : b,a 是数组的第一个元素, inc是采样点之间的步长。若( b-a )是inc的整数倍,则生成数组的最后一个元素是b, 否则小于b 。或者采用定数线性采样法,该法是在设定“总点数”下,均匀采样生成一维“行”数组。格式为 x = linspace ( a ,b ,n ) , a 、 b 分别是生成数组的第一个各最后一个元素 ,n 是采样总点数,该指令生成( 1×n )数组。
二维数组是由实数或复数排列成矩形而构成的。从数据结构上看,矩形和二维数组没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵。二维数组的创建也可采用直接输入法,或者利用构造 M 文件创建和保存数组。
除此以外,还可以采用 MATLAB 提供的标准函数生成我们需要的数组,诸如 zeros 、 ones 、 rand 、 eye 、 diag 、 magic 等,详请见附录。
一维数组元素的寻访和标识采用 X(index) 方法,只是要注意 MATLAB 中第一个元素下标 index 是 1 ,而不是 C 语言中的 0 。二维数组元素的标识和寻访可分为“全下标”标识和“单下标”标识,“全下标”标识,即指出是“第几行,第几列”的元素,如 A(3,5) 表示二维数组 A 的第三行第五列元素。该标识法的优点是几何概念清楚,引述简单,在 MATLAB 的寻址和赋值中最为常用。“单下标”标识,顾名思义就是只用一个下标来指明元素在数组中的位置,首先对二维数组的所有元素进行“一维编号”。“一维编号”是指:先设想把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”,然后自上往下对元素未知进行编号,其优点是简洁、方便,特别是如果碰到对二维数组进行诸如 for 循环操作时可以减少循环次数,提高编程效率。“全下标”标识和“单下标”标识可以通过 sub2ind 和 ind2sub 指令进行转换,详见帮助。另外,不论二维数组还是一维数组还可以采用“逻辑 1 ”标识,这种方法常用于寻找数组中所有大于或小于某值的元素的问题中。比如 X(abs(X)>3) 可以找出数组 X 中所有绝对值大于 3 的元素。另外还可以借助 ones, zeros, rand, randn 和 cat, repmat, reshape 等函数直接或间接构作高维数组,详见附录或 MATLAB 帮助。
Matlab中的许多函数可以直接对任意维的数组直接运算,相当于对数组中的每个元素分别进行运算。比如 Y=sin(X) 可以直接得到与数组 X 中每一个元素相对应的的正弦值,这大大简化了编程。可以执行数组运算的常用函数已经列表于附录中,以供参考。但值得注意的是,虽然从外观形状和数据结构上看,二维数组和(数学中的)矩阵)没有区别,但矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则。数组运算是 MATLAB 软件所定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。为了区别数组和矩阵运算,在易混淆的地方,数组运算在运算符前加一小黑点“ . ”以示区别,比如 Y=A.*B ,代表的示数组 A 和数组 B 对应元素相乘,而 Y=A*B ,则表示内维相同的矩阵 A 和 B 的乘积。由此也可看出,在执行数组与数组的运算时,参与运算的数组必须同维,运算所得结果也总与原数组同维。
本节只涉及数组可视化方法的简单实现。通常,对于离散数据可采用 stem 命令或者使用 plot 绘点的方法,而对于连续函数可直接采用 plot 指令来实现。
[实验内容]
一.数组的创建和寻访
1 .一维数组在命令窗口执行下面指令,观察输出结果,体味数组创建和寻访方法,%号后面的为注释,不用输入。
rand('state',0) % 把均匀分布伪随机发生器置为 0 状态
x=rand(1,5) % 产生(1*5)的均布随机数组
x(3) % 寻访数组 x 的第三个元素。
x([1 2 5]) % 寻访数组 x 的第一、二、五个元素组成的子数组。
x(1:3) % 寻访前三个元素组成的子数组
x(3:end) % 寻访除前 2 个元素外的全部其他元素。end 是最后一个元素的下标。 x(3:-1:1) % 由前三个元素倒排构成的子数组
x(find(x>0.5)) % 由大于 0.5 的元素构成的子数组
x([1 2 3 4 4 3 2 1]) % 对元素可以重复寻访,使所得数组长度允许大于原数组。
x(3) = 0 % 把上例中的第三个元素重新赋值为0。
x([1 4])=[1 1] % 把当前 x 数组的第一、四个元素都赋值为1。
x[3]=[] % 空数组的赋值操作
2 .二维数组
(1) 在命令窗口执行下面指令,观察输出结果
a=2.7358; b=33/79; % 这两条指令分别给变量 a , b 赋值。
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i] % 这指令用于创建二维组C
M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] % 创建复数数组的另一种方法
CN=M_r+i*M_i % 由实部、虚部数组构成复数数组
(2) 利用 M 文件创建和保存下面的数组(分号后面是一个空格后加3个小数点,表示换行续写) AM=[101,102,103,104,105,106,107,108,109;...
201,202,203,204,205,206,207,208,209;...
301,302,303,304,305,306,307,308,309];
(3) 仿照问题 1 中方法找出数组
中所有绝对值大于 3 的元素。
(4)在命令窗口执行下面指令,体味二维数组的子数组寻访和赋值
A=zeros(2,4) % 创建(2*4)的全零数组
A(:)=1:8 % 全元素赋值方式
s=[2 3 5]; % 产生单下标数组行数组
A(s) % 由“单下标行数组”寻访产生 A 元素组成的行数组
Sa=[10 20 30]’ %Sa 是长度为 3 的“列数组”
A(s)=Sa % 单下标方式赋值
A(:,[2 3])=ones(2) % 双下标赋值方式:把 A 的第2 、3列元素全赋为1
(5) 运行指令
rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B-1;
首先预测( C*C’)/100 的运行结果,然后再在机器上验证。(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。)
(6) 在命令窗口执行下面指令,体味数组运算与矩阵运算的区别
clear ;A=zeros(2,3);
A(:)=1:6; % 全元素赋值法
A=A*(1+i) % 运用标量与数组乘产生复数矩阵
A_A=A.' % 数组转置,即非共轭转置,其中单引号实现转置功能
A_M=A' % 矩阵转置,即共轭转置
二.编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在
及
处削顶。
图 1
可能用到的额外指令: find 、 hold on 、 hold off 、 legend ,具体使用方法使用 help+指令名来解答。
实验三 字符串数组的使用、简单脚本文件和函数的编写
[实验目的]
1 .掌握字符串数组的创建和构造方法及常用字符串函数的使用。
2 .熟练掌握 MATLAB 控制流的使用方法。
3 .熟悉 M 脚本文件、函数文件的编写方法和技巧。
[实验原理]
与数值数组相比,串数组在 MATLAB 中的重要性较小,但不可缺少。如果没有串数组及相应的操作,那么数据可视化、图形用户界面的制作将会遇到困难。字符串与数值数组是两种不同的数据类,它们的创建方式也不同。字符串的创建方式是:将待建的字符放在“单引号对”中。注意,“单引号对”必须是在英文状态下输入,其作用是 MATLAB 识别送来内容“身份”所必需的,如 A= ’ This is an example! ’;就创建了一个字符串 A 。注意创建带单引号的字符串时,每个单引号符用“连续2个单引号符”标识。字符串的标识同数值数组同,而且也可以使用 size 指令观察串数组的大小。串数组的 ASCII 码可以通过指令 abs 和 double 来获取,而用 char 指令可以把 ASCII 码变为串数组,另外, MATLAB 可以很好的支持中文字符串数组。对于复杂串数组的创建,一是可以直接创建,但是要保证同一串数组的各行字符数相等,即保证各行等长,不推荐,太繁琐。二是可以利用串操作函数创建多行数组,比如 char, str2mat, strvcat 等,具体操作自己通过帮助体会。另外还可以通过转化函数产生数码字符长,比如 A_str=int2str(A) 就是把整数数组 A 转换成串数组,如果是非整数将被四舍五入后再转换,类似的函数还有 num2str (把非整数数组转换为串数组,常用于图形中数据点的标识)、 mat2str (把数值数组转换成输入形态的串数组,常与 eval 指令配用)。
假如想灵活运用 MATLAB 去解决实际问题,想充分调动 MATLAB—— 科学技术资源,想理解 MATLAB 版本升级所依仗的基础,那么掌握 M 脚本文件合函数的编写规则将十分有用。
用户通过本次实验,感受抽象概念的内涵、各指令间的协调,从感知上领悟 MATLAB 编程的优越和要领。
编写 M 脚本文件的步骤:
点击 MATLAB 指令窗工具条上的 New File 图标
,就可打开如上图所示的 MATLAB 文件编辑调试器 MATLAB Editor/Debugger 。其窗口名为 untitled ,用户即可在空白窗口中编写程序。
点击编辑调试器工具条图标
,在弹出的 Windows 标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件名(如 newfile.m ),点动 【 保存 】 键,就完成了文件保存。
运行可有两种方法,一种是直接点击编辑调试工具条图标
,即可直接运行;或者使 newfile.m 所在目录成为当前目录,或让该目录处在 MATLAB 的搜索路径上 , 然后在命令窗口键入指令 newfile +回车,便可得到运行结果。
调试程序方法有多种,常见的是设置断点的方法,将光标移到程序欲执行到的位置,点击编辑调试工具条图标
,保存后运行,程序将停止在该语句位置并弹出编辑器界面等待用户下一步运行的指令,只有再次点击按钮
,才继续向下执行。相应的按下按钮
,表示清除所有断点。如果不设置断点,也可以在程序中加入 pause 指令,使得程序在此处暂停,只有用户按任意键程序才依次向下执行。则在 pause 指令的前面位置我们可以通过交互的方式得到我们想要的信息,以检测程序的正确性。
编写 MATLAB 脚本文件或函数文件时要区分开与 C 语言格式的不同。 MATALB 使用变量前不需要声明数据类型,对于所有的数值型数据 MATLAB 均以 Double 型存储。另外编程时尽量使用 MATLAB 向量(数组)编程方式,可大大提高编程效率,尽量避免过多使用 for 循环等语句。
MARLAB 提供了五种控制流的结构: for 循环结构, while 循环结构, if-else-end 分支结构,以及 switch-case 结果、 try-catch 结构。这些控制指令用法与其他语言十分类似,这里只给出简要说明。
For 循环: while 循环结构
if-else-end 结构
单分支(常用) 双分支(常用) 多分支(常被switch-case取代)
上面几条控制语句中,for 循环结构中x 称为循环变量,组命令(commands) 被称为循环体,循环体被重复执行的次数是确定的,该次数由for指令后面的数组array的列数
决定
郑伟家庭教育讲座全集个人独资股东决定成立安全领导小组关于成立临时党支部关于注销分公司决定
。换言之,循环变量依次取数组的各列,对于每个变量值,循环体被执行一次。
while 循环是首先检测 expression 的值,如其值为逻辑真(非0),则执行组命令,当组命令执行完毕,继续检测表达式的值,仍为真,循环执行组命令,一旦表达式值为假,就结束循环。一般情况下,表达式的值是标量值,但MATLAB允许其为一个数组,此时只有该数组所有元素均为真时,MATLAB才会执行循环体。若表达式为空数组,则不执行循环体。
if指令判决和break指令的配合使用,可以强制中止for循环或while循环。
switch-case 结构 try-catch 结构
switch指令后面的表达式应为一个标量或者为一个字符串。对于标量形式的表达式,比较这样进行:表达式==检测值i。对于字符串,MATLAB将调用函数strcmp来实现比较:strcmp(表达式,检测值i)。
try-catch结构,只有当MATLAB在执行组命令1时出现错误后,组命令2才会被执行。当执行组命令2时又出错,MATLAB将中止该结构。
随指令数的增加或随控制流复杂度的增加,以及重复计算要求的提出,采用M脚本文件进行编程较为适宜。这种脚本文件的构成比较简单,它是一串按照用户意图排列而成的MATLAB指令集合。脚本文件运行后,所产生的所有变量都驻留在MATLAB基本工作空间中,只要用户不使用clear指令加以清除,且MATLAB指令窗口不关闭,这些变量将一直保存在基本工作空间中。
脚本文件不同的,函数文件犹如一个“黑箱”。从外界只能看到传给它的输入量和送出的计算结果,而内部运作是藏而不见的,特点是:
从形式上看,与脚本文件不同,函数文件的第一行总是以“function”引导的“函数声明行”。该行还罗列出函数与外界的联系的全部“标称”输入输出宗量。但对“输入输出宗量”的标称数目并没有限制,即可以完全没有输入输出宗量,也可以是任意数目。形如function sa=circle(r,s) 。这里r、s称为输入宗量,sa称为输出宗量,函数名为circle,同时注意保存的函数文件名应与这里的函数名一致,即存为circle.m文件。
MATLAB 允许使用比“标称”数目较少的输入输出宗量实现对函数的调用,但前提是函数中应该有相应的处理程序。
从运行上看,与脚本文件不同,每当函数文件运行时,MATLAB就会专门为它开辟一个临时的工作空间,称之为函数工作空间。所有中间变量都存放在函数工作空间中。当执行完文件最后一条指令或遇到return时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。
假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放在该函数空间中,而不是存放在基本空间。
[实验内容]
一.串数组的创建和寻访
1 .先请实际操作下例,以体会数值量与字符串的区别
clear % 清除所有内存变量
a=12345.6789 % 给变量 a 赋数值标量
class(a) % 对变量 a 的类别进行判断
a_s=size(a) % 数值数组 a 的“大小”
b='S' % 给变量 b 赋字符标量(即单个字符)
class(b) % 对变量 b 的类别进行判断
b_s=size(b) % 符号数组 b 的“大小
whos % 观察变量 a,b 在内存中所占字节
2 .已知串数组 a=”This is an example.”, 试将其到序输出。
3 .接上题,试执行ascii_a=double(a),观察其ASCII码,并将ASCII码变回字符串。
4 .设A=”这是一个算例”,重复上面的2-3。
5 .尝试用直接输入法在命令窗口创建字符串 s ,第一行时“ This string array ” , 第二行是“ has multiple rows. ”。
6 .利用串操作函数char、str2mat、strvcat分别写出使以下这段文字成为字符串的程序,注意保持这段文字的格式。
在英式用法中,引号通常是单引号,如‘Fire!’。
In GB usage quotation marks are usually single: ’Fire!’ .
二.脚本文件实现
,并在图上标出图名和极大值点坐标。如下图所示。
可能用到的函数: num2str, char, text, hold on, 具体应用自己查找 help 文档。
三.编程实现分别用 for 或 while 循环语句计算:
的程序,并给出运行结果。此外,实现一种避免使用循环的的计算程序。
四.函数文件
1 .详读并运行下面的circle.m函数文件。体会 M 函数文件的编写结构及方法。 % 后面的内容称为注释行,不被执行,起注释说明作用。
2 .编写一个简单的函数文件,它具有如下性质:该函数被调用时,如果不指定输入变量,则自动输出“用户,你忘记给定输入变量了!”;当输入大于1的整数时,则输出“你是一个合法用户!”;当输入的是一个非正整数时,函数文件会给出一个错误提示“你是非法用户!” 【 提示:可能用到 disp,error 等指令,使用方法自己查询帮助 】
实验四 数据可视化方法
[实验目的]
1 .掌握曲线绘制的基本技法和指令,会使用线形、色彩、数据点标记表现不同数据的特征,掌握生成和运用标识注释图形。
2 .进一步掌握函数编写及数据可视化方法。
[实验原理]
MATLAB 提供了相当强大的可视化指令,通过这些指令,我们可以非常简单地实现数据的可视化。首先我们来看离散数据和离散函数的可视化方法。对于离散实函数
,当
以递增(或递减)次序取值时,根据函数关系可以求得同样数目的
,当把这两组向量用直角坐标中的点次序图示时,就实现了离散函数的可视化。当然这种图形上的离散序列所反映的只是某确定的有限区间内的函数关系,不能表现无限区间上的函数关系。通常我们可以采用plot或者stem来实现。只是需要注意的是使用plot时,需要使用星号或者点等标识来表示数据点,比如plot(xn ,yn ,’r*’,’MarkerSize’,20),就表示用字号 20 的红色星点来标识数据点 , 此时为了便于观察,通常随后加上一条语句“grid on”,即给图形加上坐标方格。而采用 stem 标识数据点的格式是 stem(xn ,yn ) 。
连续函数的可视化与离散函数可视化类似,也必须先在一组离散自变量上计算相应的函数值,并把这一组“数据点”用点图示。但这些离散的点不能表现函数的连续性。为了进一步表示离散点之间的函数函数情况,MATLAB有两种常用处理方法:一是对区间进行更细的分割,计算更多的点,去近似表现函数的连续变化;或者把两点用直线连接,近似表现两点间的(一般为非线性的)函数形状。但要注意,倘若自变量的采样点不足够多,则无论哪种方法都不能真实地反映原函数。对于二维数据,常用指令仍旧是plot。对于离散数据,plot指令默认处理方法是:自动地把这些离散数据用直线(即采用线性插值)连接,使之成为连续曲线。对于三维图形的表示,通常有plot3等指令。
通常,绘制二维或三维图形的一般步骤如下表所示:
步骤
典型指令
1
曲线数据准备
先取一个参变量采用向量
然后计算各坐标数据向量
t=0:.001:3*pi; % 参变量采用向量
t=linspace(0,3*pi,1000) % 参变量采用向量另种方式
y=f(t); % 计算相应的函数值
2
选定图形窗及子图位置
缺省时,打开Figure No.1,或当前窗,当前子图
可用指令指定图形窗号和子图号
figure(1) % 指定1号图形窗
Subplot(2,2,3) % 指定3号子图
3
调用二维或三维绘图指令
指定好线形、色彩、数据点形
plot(t,y,’r:’) % 用红虚点画二维线 , 画三维可
%plot3 指令,此处略
4
设置轴的范围、坐标分格线
axis([x1,x2 ,y1,y2 ]) % 平面坐标范围
grid on % 坐标分格线
5
图形注释:图名、坐标名、图例、文字说明等
title(‘调制图形’) % 图名
xlabel(‘t’); ylabel(‘y’) % 轴名
legend(sin(t),’sin(t)sin(9t)’) % 图例
text(2,0.5, ’y=sin(t)sin(9t)’) % 文字说明
6
着色、明暗、灯光、材质处理等(仅对三维图形使用)
colormap, shading, light, material
7
视点、三度(横、纵、高)比(仅对三维图形使用)
view, aspect
8
图形的精确修饰(图柄操作)
利用对象属性值设置
利用图形窗工具条进行
get, set
9
打印
图形窗上的直接打印选项或按键
利用图形后处理软件打印
% 采用图形窗选项或按键打印最简捷
print –dsp2 % 专业质量打印指令
说明:
步骤1、3是最基本的绘图步骤,一般来说,由这两步所画出的图形已经具备足够的表现力。至于其他步骤,并不完全必需。
用户可根据自己需要改变上面绘图步骤,并不必严格按照执行。
步骤2一般在图形较多情况下使用,此时需要指定图形窗、指定子图。
步骤8涉及图柄操作,需要对图形对象进行属性设置,较为复杂。
MATLAB 提供了交互式图形编辑功能,可方便地对图形精细修饰。
plot 等绘图指令的典型调用格式为: plot(t,y,’s’) 。其中s是用来指定线型、色彩、数据点形的选项字符串。S的合法取值如下所示,格式形如’r+’。如果缺省,此时线型、色彩、数据点形将由MATLAB默认设置确定。plot进一步的使用可参看帮助文档。
s可用来指定的线形分别有:“-”实线,“:”虚线,“-.”点划线,“--”双划线。
s可用来指定的色彩分别有:b-蓝,g-绿,r -红,c-青,y-黄, w-白,k-黑。
s可用来指定的数据点形有:“.”实心黑点,“+”十字符,“^”朝上三角符,“v”朝下三角符,“d”菱形符,“p”五角星符等。
常用的坐标控制指令axis使用是最多的,比如 axis([x1 ,x2 ,y1 ,y2]) 可人工设定坐标范围,axis off可取消轴背景,axis equal横纵轴采用等长刻度等。其他使用见帮助。
需要特别指出的是,当遇到在已经存在的图上再绘制一条或多条曲线,可使用hold on指令,可保持当前轴及图形保持不被刷新,并准备接收此后绘制的新曲线, hold off 则取消此功能。对于想画多个独立的图形,则会用到figure(n)指令,这里n为整数,可顺序从1向后排。如果想在特定图形中布置几幅独立的子图,则会用到 subplot(m,n,k) ,即在(m×n)幅子图中的第k幅成为当前图; subplot(‘position’,[left botton width height]) ,表示在指定位置上开辟子图,并成为当前图。使用clf指令可清除图形窗的内容。另外MATLAB还提供了ginput、gtext、legend等交换指令。
[x,y]=ginput(n),可用鼠标从二维图形上获取n个点的数据坐标(x,y),该指令只适用于二维图形 , 在数值优化、工程设计中十分有用。通常在使用前先对图进行局部放大处理。
[实验内容]
一.仿照运行,体会数据可视化方法。
1 .已知
,
,运行下面程序,体会离散数据可视化方法。
说明:
plot和stem指令均可以实现离散数据的可视化,但通常plot更常用于连续函数中特殊点的标记;而stem广泛运行与数字信号处理中离散点的图示。
用户在运行上面例程时会发现在命令窗口出现警告:Warning: Divide by zero!即警告程序中出现非零数除以0的指令。MATLAB对于这种情况并不中止程序只是给该项赋值为inf 以做标记。
2 .下面时用图形表示连续调制波形
,仿照运行,分析表现形式不同的原因。
二.编程实现。
1 .用图形表示连续调制波形
,过零点及其包络线,如下图所示。
2 .编写函数 [x,n]=stepseq(n0,n1,n2), 实现:
并编写脚本文件实现:
要求在脚本文件中调用 stepseq 函数,最后绘出序列
在给定区间的波形图。
3 .编写一个函数文件[y,n]=sigadd(x1,n1,x2,n2),实现两个对应样本之间的相加,其中x1是长度为n1的序列,x2是长度为n2的序列,n1、n2 分别是x1、x2的位置信息(n1、 n2 均为整数),如:
n1={ -3,-2,-1,0,1,2,3,4} ,对应的
x1={ 2, 3, 1,4,1,3,1,2} ;
n2={-4,-3,-2,-1,0,1,2} ,对应的
x2={ 1, 3, 2, 5,1,3,4} 。
当调用函数 [y,n]=sigadd(x1,n1,x2,n2) 时,我们应该得到:
n={-4,-3,-2,-1,0,1,2,3,4},
对应的 y={ 1, 5, 5, 6,5,4,7,1,2} 。
仔细观察 sigadd 函数的功能。编好函数文件程序后,请在命令窗口调用,验证正确性,记录验证结果。
实验五 简单数据分析
[实验目的]
1 .初步掌握利用 MATLAB 实现数据的拟合、插值、简单数据分析等。
[实验原理]
数值计算能力是MATLAB称雄世界的根本柱石。MATLAB内建了很多函数可以求解线性方程、特征值问题以及有关多项式和卷积、数据分析、泛函、信号处理、系统分析等方面的指令。结合目前的学习进度,本课程内只简单讨论数据的拟合、插值、简单数据分析及在实验中讨论函数的零极点求法等内容,对其他内容有兴趣的可参看参考书籍。
MATLAB提供了拟合和插值的相关函数。曲线拟合是研究如何寻找“平滑”曲线最好地表现带噪声的“测量数据”点。而插值是在认定所给“基准数据”完全正确的情况下,研究如何“平滑”地估算出“基准数据”之间其他点的函数值。因此插值所得曲线一定穿过“基准数据”。而拟合曲线就不一定了。另外,拟合多项式只能在给定数据所限定的区间内使用,不要任意向往拓展。而每当基准数据之间其他点上函数值没法获得,或获得的代价很好时,插值就发挥作用。插值指令很多,有 interp1,interp2,interp3等。采用的插值算法也很多,如线形插值、三次多项式插值算法、样条插值等。对于多项式拟合有polyfit、poly2str、polyval等函数,具体请参看帮助和范例。
MATLAB内建了很多数据分析函数,比如常用的随机数发生器函数rand,randn; 计分析指令有:min-最小值,max-最大值,mediam-求中值 ,mean-平均值, std-标准差,sort-排序指令等。差分和累计函数diff、prod、sum等。另外MATLAB还提供了很多泛函指令、信号处理专业工具包、系统分析中的控制工具包以及诸如微分、求导等符号运算功能等等,有需要的可参看帮助及相关书籍。
[实验内容]
一.设计仿真通信原理中的M-FSK。
实验六 Simulink仿真初步
[实验目的]
1 .初步熟悉 MATLAB 仿真环境。
2 .掌握物理模型的建立、仿真方法。
[实验原理]
Simulink交互式仿真集成环境是MATLAB最重要的组件之一,它提供了一个动态系统建模、仿真和综合分析的集成环境。它适用面广,可以处理的系统包括:线性、非线性系统,离散、连续及混合系统,单任务、多任务离散事件系统。在 Simulink 提供的图形用户界面 GUI 上,只要进行鼠标的简单拖拉操作就可构造出复杂的仿真模型。它外表以方块图形式呈现,且采用分层结构。从建模角度讲,这既适于自上而下(Top-down )的设计流程(概念、功能、系统、子系统、直至器件),又适于自下而上(Bottum-up)逆程设计。从分析研究角度讲,这种Simulink模型不仅能让用户知道具体环节的动态细节,而且能让用户清晰地了解各器件、各子系统、各系统间的信息交换,掌握各部分之间的交互影响。在 Simulink 环境中,用户将摆脱理论演绎时需做理想化假设的无奈,观察到现实世界中摩擦、风阻、齿隙、饱和、死区等非线性因素和各种随机因素对系统行为的影响。在Simulink环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。由于Simulink环境使用户摆脱了深奥数学推演的压力和烦琐编程的困扰,因此用户在此环境中会产生浓厚的探索兴趣,引发活跃的思维,感悟出新的真谛。在 MATLAB 的命令窗运行指令Simulink便可打开Simulink模块库浏览器( Simulink Library Browser),点击Source子库,即可看到各种信源模块,包括信号发生器(Signal Generator)、正弦波信源模块( Sine Wave )、阶跃波信源模块(Step)等等。我们可以点击Simulink模块库浏览器上的新建( New )按钮,建立一个名为 untitled 的空白模型窗口。用鼠标点中所需的信源模块(如正弦波信源模块 Sine Wave ),直接拉至 untitled 窗,类似地,也可将信宿库 Sinks 中的示波器 Scope 拉至到模型窗,用鼠标连接好两个模块连线,就建立了一个简单的模型。诸如此类,我们可以利用其丰富的资源,建立各种仿真模型。其详细使用请参考相关书籍。
[实验内容]
一.下面是采用 Simulink 中的积分仿真模块求解从实际自然界(力学、电学、生态等)或社会中,抽象出初始状态为 0 的二阶微分方程 ) ( 2 . 0 4 . 0 2 . 0 t u x x x 的实例, ) (t u 是单位阶跃函数。请模拟搭建,并仿真运行。 【Simulink 对于今后 《 信号与系统 》 、 《 数字信号处理 》 以及电子、信号处理、通讯等相关专业的深入学习具有重要意义,具体使用方法还请参看 MATLAB 有关 Simulink 的相关专业书籍。 】 步骤如下: (1) 改写微分方程把原方程改写为 x x t u x 4 . 0 2 . 0 ) ( 2 . 0 (2) 利用 Simulink 库中的标准模块构作模型如下图所示
利用积分模块构造微分方程求解模型的核心思想是: ' ' x 经积分作用得到 ' x , ' x 再经积分模块作用就得 x 。上图中的 Int1 、 Int2 为积分模块,积分仿真模块形如。 Gs 、 G1 和 G2 为增益模块,形如, k 为增益参数,通过双击增益模块,设置其中 Gain 值实现。 G1 和 G2 方向旋转可借助菜单 【 Format : Rotate Block 】 选项实现。 u(t) 称为输入模块,此处为单位阶跃函数,其仿真模块为。称为求和模块,其设置方法是双击原始求和模块,图标形状 Icon shape 选择 rectangular ,使模块成矩形;符号列表 List of signs 设置为+ ―― 。 Scope 称为示波器,形如。以上模块大多位于 Simulink 模块组的 Continuous 、 Math 以及 Nonlinear 模块库中, Scope 位于 Sink 模块库。用户可自己在 Simulink 模块库中自行查找,借此了解 MATLAB 中 Simulink 的丰富资源。 (3) 设置仿真选项。选中菜单 【 Simulation : Parameters 】 ,打开仿真参数设置窗;在 Solver 页中,把仿真的停止时间 Stop time 设置为 20 。 (4) 仿真操作。双击示波器图标,打开示波窗。选择模型窗中的菜单 【 Simulation : Start 】 ,就可在示波窗中看到位移 x 的曲线。进一步,如果仿真的同时想把送入示波器的数据同时保存下来,还可以在上面的仿真模型中加入 To Workspace 模块,再配合 Clock 模块和 Mux 模块便可实现。用户可自行练习。二.仿照上例,对二阶方程 ) ( 5 . 0 4 . 1 3 . 0 t u x x x 建模仿真, ) (t u 是单位阶跃函数。
附录 MATLAB主要函数指令表(按功能分类)
1 常用指令(General Purpose Commands)
1.1 通用信息查询(General information)
demo
演示程序
help
在线帮助指令
helpbrowser
超文本文档帮助信息
helpdesk
超文本文档帮助信息
helpwin
打开在线帮助窗
info
MATLAB 和 MathWorks 公司的信息
subscribe
MATLAB 用户注册
ver
MATLAB 和 TOOLBOX 的版本信息
version
MATLAB 版本
whatsnew
显示版本新特征
1.2 工作空间管理(Managing the workspace)
clear
从内存中清除变量和函数
exit
关闭 MATLAB
load
从磁盘中调入数据变量
pack
合并工作内存中的碎块
quit
退出 MATLAB
save
把内存变量存入磁盘
who
列出工作内存中的变量名
whos
列出工作内存中的变量细节
workspace
工作内存浏览器
1.3 工作空间管理(Managing the workspace)
edit
矩阵编辑器
edit
打开 M 文件
inmem
查看内存中的 P 码文件
mex
创建 MEX 文件
open
打开文件
pcode
生成 P 码文件
type
显示文件内容
what
列出当前目录上的 M 、 MAT 、 MEX 文件
which
确定指定函数和文件的位置
1.4 工作空间管理(Managing the search path)
addpath
添加搜索路径
rmpath
从搜索路径中删除目录
path
控制 MATLAB 的搜索路径
pathtool
修改搜索路径
1.5 指令窗控制(Controlling the command )
beep
产生 beep 声
echo
显示命令文件指令的切换开关
diary
储存 MATLAB 指令窗操作内容
format
设置数据输出格式
more
命令窗口分页输出的控制开关
1.6 操作系统指令(Operating system commands )
cd
改变当前工作目录
computer
计算机类型
copyfile
文件拷贝
delete
删除文件
dir
列出的文件
dos
执行 dos 指令并返还结果
getenv
给出环境值
ispc
MATLAB 为 PC(Windows) 版本则为真
isunix
MATLAB 为 Unix 版本则为真
mkdir
创建目录
pwd
改变当前工作目录
unix
执行 unix 指令并返还结果
vms
执行 vms dcl 指令并返还结果
web
打开 web 浏览器
!
执行外部应用程序
2 运算符和特殊算符(Operators and special characters)
2.1 算术运算符(Arithmetic operators)
+
加
-
减
*
矩阵乘
.*
数组乘
^
矩阵乘方
.^
数组乘方
\
反斜杠或左除
/
斜杠或右除
./ 或 .\
数组除
张量积
[ 注 ] 本表第三栏括号中的字符供在线救助时 help 指令引述用
2.2 关系运算符(Relational operators)
= =
等号
~=
不等号
<
小于
>
大于
<=
小于或等于
>=
大于或等于
2.3 逻辑操作(Logical operators)
&
逻辑与
|
逻辑或
~
逻辑非
xor
异或
any
有非零元则为真
all
所有元素均非零则为真
逻辑操作(Special characters)
:
冒号
( )
圆括号
[ ]
方括号
{ }
花括号
@
创建函数句柄
.
小数点
.
构架域的关节点
..
父目录
…
续行号
,
逗号
;
分号
%
注释号
!
调用操作系统命令
=
赋值符号
ˊ
引号
ˊ
复数转置号
.ˊ
转置号
[,]
水平串接
[;]
垂直串接
( ),{ },.
下标赋值
( ),{ },.
下标标识
subsindex
下标标识
3 编程语言结构(Programming language constructs)
3.1 算术运算符(Arithmetic operators)
break
终止最内循环
case
同 switch 一起使用
catch
同 try 一起使用
continue
将控制转交给外层的 for 或 while 循环
else
同 if 一起使用
elseif
同 if 一起使用
end
结束 for,while,if 语句
for
按规定次数重复执行语句
if
条件执行语句
otherwise
可同 switch 一起使用
return
返回
switch
多个条件分支
try
try-cathch 结构
while
不确定次数重复执行语句
3.2 计算运行(Evaluation and execution)
assignin
跨空间赋值
builtin
执行内建的函数
eval
字符串宏指令
evalc
执行 MATLAB 字符串
evalin
跨空间计算串表达式的值
feval
函数宏指令
run
执行脚本文件
3.3 脚本文件、函数及变量(Scripts,function,and variables)
exist
检查变量或函数是否被定义
function
函数文件头
global
定义全局变量
isglobal
若是全局变量则为真
iskeyword
若是关键字则为真
mfilename
正在执行的 M 文件的名字
persistent
定义永久变量
script
MATLAB 命令文件
3.4 宗量处理(Augument handling)
inputname
实际调用变量名
nargchk
输入变量个数检查
nargin
函数输入宗量的个数
nargout
函数输出宗量的个数
nargoutchk
输出变量个数检查
varagin
输入宗量
varagout
输出宗量
3.5 信息显示(Message display)
disp
显示矩阵和文字内容
display
显示矩阵和文字内容的重载函数
error
显示错误信息
fprintf
把格式化数据写到文件或屏幕
lasterr
最后一个错误信息
lastwarn
最后一个警告信息
sprintf
按格式把数字转换为串
warning
显示警告信息
3.6 交互式输入(Interactive input)
input
提示键盘输入
keyboard
激活键盘做为命令文件
pause
暂停
uicontrol
创建用户界面控制
uimenu
创建用户界面菜单
4 基本矩阵函数和操作(Elementary matrices and matrix manipulation )
4.1 基本矩阵(Elementary matrices)
eye
单位阵
linspace
线性等分向量
logspace
对数等分向量
meshgrid
用于三维曲面的分格线坐标
ones
全1矩阵
rand
均匀分布随机阵
randn
正态分布随机阵
repmat
铺放模块数组
zeros
全零矩阵
:
矩阵的援引和重排
4.2 矩阵基本信息(Basic array information)
disp
显示矩阵和文字内容
isempty
若是空矩阵则为真
isequal
若对应元素相等则为 1
islogical
尤其是逻辑数则为真
isnumeric
若是数值则为真
length
确定向量的长度
logical
将数值转化为逻辑值
ndims
数组 A 的维数
size
确定矩阵的维数
4.3 矩阵操作(Matrix manipulation)
blkdiag
块对角阵串接
diag
创建对角阵,抽取对角向量
end
数组的长度,即最大下标
find
找出非零元素 1 的下标
fliplr
矩阵的左右翻转
flipud
矩阵的上下翻转
flipdim
交换对称位置上的元素
ind2sub
据单下标换算出全下标
reshape
矩阵变维
rot90
矩阵逆时针 90° 旋转
sub2idn
据全下标换算出单下标
tril
抽取下三角阵
triu
抽取上三角阵
4.4 特殊变量和常数(Special variables and constants)
ans
最新表达式的运算结果
eps
浮点相对误差
i,j
虚数单位
inf 或 Inf
无穷大
isfinite
若是有限数则为真
isinf
若是无穷大则为真
isnan
若为非数则为真
NaN 或 nan
非数
pi
3.14….
realmax
最大浮点数
realmin
最小正浮点数
why
一般问题的简明答案
4.5 特殊矩阵(Specialized matrices)
compan
伴随矩阵
gallery
一些小测试矩阵
hadamard
Hadamard 矩阵
hankel
Hankel 矩阵
hilb
Hilbert 矩阵
invhilb
逆 Hilbert 矩阵
magic
魔方阵
pascal
Pascal 矩阵
rosser
典型对称特征值实验问题
toeplitz
Toeplitz 矩阵
vander
Vandermonde 矩阵
wilkinson
Wilkinson ’ s 对称特征值实验矩阵
5 基本数学函数(Elementary math functions )
5.1 三角函数(Trigonometric)
acos
反余弦
acosh
反双曲余弦
acot
反余切
acoth
反双曲余切
acsc
反余割
acsch
反双曲余割
asec
反正割
asech
反双曲正割
asin
反正弦
asinh
反双曲正弦
atan
反正切
atanh
反双曲正切
atan2
四象限反正切
cos
余弦
cosh
双曲余弦
cot
余切
coth
双曲余切
csc
余割
csch
双曲余割
sec
正割
sech
双曲正割
sin
正弦
sinh
双曲正弦
tan
正切
tanh
双曲正切
5.2 指数函数(Exponential)
exp
指数
log
自然对数
log10
常用对数
log2
以 2 为底的对数
nestpow2
最近邻的 2 的幂
pow2
2 的幂
sqrt
平方根
5.3 复数函数(Complex)
abs
绝对值
angle
相角
complex
将实部和虚部构成复数
conj
复数共轭
cplxpair
复数阵成共轭对形式排列
imag
复数虚部
isreal
若是实数矩阵则为真
real
复数实部
unwrap
相位角 360° 线调整
5.4 取整和求余函数(Rounding and remainder)
ceil
朝正无穷大方向取整
fix
朝零方向取整
floor
朝负无穷大方向取整
mod
模数求余
rem
求余数
round
四舍五入取整
sign
符号函数
6 特殊函数(Specialized math functions )
cart2pol
直角坐标变为柱 ( 或极 ) 坐标
cart2sph
直角坐标变为球坐标
cross
向量叉积
dot
向量内积
isprime
若是质数则为真
pol2cart
柱 ( 或极 ) 坐标变为直角坐标
sph2cart
球坐标变为直角坐标
7 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
7.1 矩阵分析(Matrix analysis)
det
行列式的值
norm
矩阵或向量范数
normest
估计 2 范数
null
零空间
orth
值空间
rank
秩
rref
转换为行阶梯形
trace
迹
subspace
子空间的角度
7.2 线性方程(Linear equations)
chol
Cholesky 分解
cholinc
不完全 Cholesky 分解
cond
矩阵条件数
condest
估计 1- 范数条件数
inv
矩阵的逆
lu
LU 分解
luinc
不完全 LU 分解
lscov
已知协方差的最小二乘积
nnls
非负二乘解
pinv
伪逆
qr
QR 分解
rcond
LINPACK 逆条件数
\ 、 /
解线性方程
7.3 特征值与奇异值(Eidenvalues and singular values)
condeig
矩阵各特征值的条件数
eig
矩阵特征值和特征向量
eigs
多个特征值
gsvd
归一化奇异值分解
hess
Hessenberg 矩阵
poly
特征多项式
polyeig
多项式特征值问题
qz
广义特征值
schur
Schur 分解
svd
奇异值分解
svds
多个奇异值
7.4 矩阵函数(Matrix functions)
expm
矩阵指数
expm1
矩阵指数的 Pade 逼近
expm2
用泰勒级数求矩阵指数
expm3
通过特征值和特征向量求矩阵指数
funm
计算一般矩阵函数
logm
矩阵对数
sqrtm
矩阵平方根
7.5 因式分解(Factorization utility)
cdf2rdf
复数对角型转换到实块对角型
balance
改善特征值精度的平衡刻度
rsf2csf
实块对角型转换到复数对角型
8 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
8.1 矩阵分析(Matrix analysis)
cumprod
元素累计积
cumsum
元素累计和
cumtrapz
累计积分
hist
统计频数直方图
histc
直方图统计
max
最大值
mean
平均值
median
中值
min
最小值
prod
元素积
sort
由小到大排序
sortrows
由小到大按行排序
std
标准差
sum
元素和
trapz
梯形数值积分
var
求方差
8.2 矩阵分析(Matrix analysis)
del2
五点离散 Laplacian
diff
差分和近似微
gradient
梯度
8.3 矩阵分析(Matrix analysis)
corrcoef
相关系数
cov
协方差矩阵
subspace
子空间之间的角度
8.4 Hjj
conv
卷积和多项式相乘
conv2
二维卷积
convn
N 维卷积
detrend
去除线性分量
deconv
解卷和多项式相除
filter
一维数字滤波器
fliter2
二维数字滤波器
8.5 Gtgg
fft
快速离散傅里叶变换
fft2
二维离散傅里叶变换
fftn
N 维离散傅里叶变换
fftshift
重排 fft 和 fft2 的输出
ifft
离散傅里叶反变换
ifft2
二维离散傅城叶反变换
ifftn
N 维离散傅里叶反变换
ifftshift
反 fftshift
9 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
9.1 矩阵分析(Matrix analysis)
sound
播放向量
soundsc
自动标刻并播放
waveplay
利用系统音频输出设配播放
waverecor
利用系统音频输入设配录音
9.2 矩阵分析(Matrix analysis)
auread
读取音频文件
auwrite
创建音频文件
wavread
读取音频文件
wavwrite
创建音频文件
9.3 矩阵分析(Matrix analysis)
lin2mu
将线性信号转换为
律编码的信号
mu2lin
将
律编码信号转换为线性信号
10 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
10.1 矩阵分析(Matrix analysis)
griddata
分格点数据
griddata3
三维分格点数据
griddatan
多维分格点数据
interpft
利用 FFT 方法一维插补
interp1
一维插补
interp1q
快速一维插补
interp2
二维插补
interp3
三维插补
intern
N 维插补
pchip
hermite 插补
10.2 矩阵分析(Matrix analysis)
ppval
计算分段多项式
spline
三次样条插补
10.3 矩阵分析(Matrix analysis)
conv
多项式相乘
deconv
多项式相除
poly
由根创建多项式
polyder
多项式微分
polyfit
多项式拟合
polyint
积分多项式分析
polyval
求多项式的值
polyvalm
求矩阵多项式的值
residue
求部分分式表达
roots
求多项式的根
11 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
11.1 矩阵分析(Matrix analysis)
fminbnd
非线性函数在某区间中极小值
fminsearch
单纯形法求多元函数极值点指令
fzero
单变量函数的零点
11.2 矩阵分析(Matrix analysis)
optimget
从OPTIONS构架中取得优化参数
optimset
创建或修改OPTIONS构架
11.3 矩阵分析(Matrix analysis)
dblquad
二重 ( 闭型 ) 数值积分指令
quad
低阶法数值积分
quadl
高阶法数值积分
11.4 Yyy
ezcontour
画等位线
ezcontourf
画填色等位线
ezmesh
绘制网格图
ezmeshc
绘制含等高线的网格图
ezplot
绘制曲线
ezplot3
绘制 3 维曲线
ezpolar
采用极坐标绘图
ezsurf
画曲面图
ezsurfc
画带等位线的曲面图
fplot
画函数曲线图
11.5 Pp
argnames
给出函数的输入宗量
char
创建字符传输组或者将其他类型变量转化为字符串数组
formula
函数公式
inline
创建内联函数
11.6 Pp
ode113
变阶法解方程
ode15s
变阶法解刚性方程
ode23
低阶法解微分方程
ode23s
低阶法解刚性微分方程
ode23t
解适度刚性微分方程
odet23tb
低阶法解刚性微分方程
ode45
高阶法解微分方程
12 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
12.1 矩阵分析(Matrix analysis)
loglog
双对数刻度曲线
plot
直角坐标下线性刻度曲线
plotyy
双纵坐标图
polar
极坐标曲线图
semilogx
X 轴半对数刻度曲线
semilogy
Y 轴半对数刻度曲线
12.2 矩阵分析(Matrix analysis)
axes
创建轴
axis
轴的刻度和表现
box
坐标形式在封闭式和开启词式之间切换
grid
画坐标网格线
hold
图形的保持
subplot
创建子图
zoom
二维图形的变焦放大
12.3 矩阵分析(Matrix analysis)
gtext
用鼠标在图上标注文字
legend
图例说明
plotedit
图形编辑工具
text
在图上标注文字
texlabel
将字符串转换为 Tex 格式
title
图形标题
xlabel
X 轴名标注
ylabel
Y 轴名标注
12.4 Op
orient
设置走纸方向
print
打印图形或把图存入文件
printopt
打印机设置
13 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
13.1 矩阵分析(Matrix analysis)
fill3
三维曲面多边形填色
mesh
三维网线图
plot3
三维直角坐标曲线图
surf
三维表面图
13.2 矩阵分析(Matrix analysis)
alpha
透明色控制
brighten
控制色彩的明暗
caxis
( 伪 ) 颜色轴刻度
colordef
用色风格
colormap
设置色图
graymon
设置缺省图形窗口为单色显示屏
hidden
消隐
shading
图形渲染模式
whitebg
设置图形窗口为白底
13.3 矩阵分析(Matrix analysis)
diffuse
漫反射表面系数
light
灯光控制
lighting
设置照明模式
material
使用预定义反射模式
specular
漫反射
surfnorm
表面图的法线
surfl
带光照的三维表面图
13.4 Ooo
autumn
红、黄浓淡色
bone
蓝色调灰度图
colorcube
三浓淡多彩交错色
cool
青和品红浓淡色图
copper
线性变化纯铜色调图
flag
红-白-蓝黑交错色图
gray
线性灰度
hot
黑-红-黄-白交错色图
hsv
饱和色彩图
jet
变异 HSV 色图
lines
采用 plot 绘线色
pink
淡粉红色图
prism
光谱色图
spring
青、黄浓淡色
summer
绿、黄浓淡色
vga
16 色
white
全白色
winter
蓝、绿浓淡色
13.5 Ppp
axes
创建轴
axis
轴的刻度和表现
box
坐标形式在封闭式和开启式之间切换
daspect
轴的 DataAspectRatio 属性
grid
画坐标网格线
hold
图形的保持
pbaspect
画坐标框的 PlotBoxAspectRatio 属性
subplot
创建子图
xlim
X 轴范围
ylim
Y 轴范围
zlim
Z 轴范围
zoom
二维图形的变焦放大
13.6 Ooo
rotate3d
旋动三维图形
view
设定 3 - D 图形观测点
viewmtx
观测点转换矩阵
13.7 Ooo
colorbar
显示色条
gtext
用鼠标在图上标注文字
plotedit
图形编辑工具
text
在图上标注文字
title
图形标题
xlabel
X 轴名标注
ylabel
Y 轴名标注
zlabel
Z 轴名标注
13.8 Ooo
orient
设置走纸方向
print
打印图形或把图存入文件
printopt
打印机设置
verml
将图形保存为 VRML2.0 文件
14 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
14.1 矩阵分析(Matrix analysis)
area
面域图
bar
直方图
barh
水平直方图
comet
彗星状轨迹图
compass
从原点出发的复数
errorbar
误差棒棒图
ezplot
画二维曲线
ezpolar
画极坐标曲线
feather
从 X 轴出发的复数
fill
多边填色图
fplot
函数曲线图
hist
统计频数直方图
pareto
Pareto 图
pie
饼形统计图
plotmatrix
散点图阵列
scatter
散点图
stairs
阶梯形曲线图
stem
火柴杆图
14.2 矩阵分析(Matrix analysis)
clabel
给等高线加标注
contour
等高线图
contourf
等高线图
contour3
三维等高线
ezcontour
画等位线
ezcontourf
画填色等位线
pcolor
用颜色反映数据的伪色图
voronoi
Voronoi 图
14.3 矩阵分析(Matrix analysis)
bar3
三维直方图
bar3h
三维水平直方图
comet3
三维彗星动态轨迹线图
ezgraph3
通用指令
ezmesh
画网线图
ezmeshc
画等位线的网线图
ezplot3
画三维曲线
ezsurf
画曲面图
ezsurfc
画带等位线的曲面图
meshc
带等高线的三维网线图
meshz
带零基准面的三维网线图
pie3
三维饼图
ribbon
以三维形式绘制二维曲线
scatter3
三维散点图
stem3
三维离散杆图
surfc
带等高线的三维表面图
trimesh
三角剖分网线图
trisurf
三角剖分曲面图
waterfall
瀑布水线图
14.4 Uii
coneplot
锥体图
contourslice
切片等位线图
quiver
矢量场图
quiver3
三维方向箭头图
slice
切片图
14.5 Jkjj
brighten
控制色彩的明暗
colorbar
色彩条状图
colormap
设置色图
contrast
提高图像对比度的灰色图
gray
线性灰度
image
显示图像
imagesc
显示亮度图像
imfinfo
获取图像文件的特征数据
imread
从文件读取图像的数据阵(和伴随色图))
imwrite
把强度图像或真彩图像写入文件
14.6 ;;;
capture
当前图的屏捕捉
frame2im
将影片动画转换为编址图像
getframe
获得影片动画图像的帧
im2frame
将编址图像转换为影片动画
movie
播放影片动画
moviein
影片动画内存初始化
rotate
旋转指令
14.7 Iii
spinmap
颜色周期性变化操纵
14.8 Jjkk
cylinder
圆柱面
patch
创建块
sphere
球面
Surf2patch
将曲面数据转换为块数据
15 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
15.1 矩阵分析(Matrix analysis)
clf
清除当前图
close
关闭图形
figure
打开或创建图形窗口
gcf
获得当前图的柄
openfig
打开图形
refresh
刷新图形
clf
显示图形窗
15.2 矩阵分析(Matrix analysis)
axes
在任意位置创建轴
axis
轴的控制
box
坐标形式在封闭式和开启式之间切换
caxis
控制色轴的刻度
cla
清除当前轴
gca
获得当前轴的柄
hold
图形的保持
ishold
若图形处保持状态则为真
subplot
创建子图
15.3 矩阵分析(Matrix analysis)
axex
在任意位置创建轴
figure
创建图形窗口
image
创建图像
light
创建光
line
创建线
patch
创建块
rectangle
创建方
surface
创建面
text
创建图形中文本
uicontextmenu
创建现场菜单对象
uicontrol
用户使用界面控制
uimenu
用户使用菜单控制
15.4 可怜
copyobj
拷贝图形对象及其子对象
delete
删除对象及文件
drawnow
屏幕刷新
findobj
用规定的特性找寻对象
gcbf
“正执行回调操作”的图形的柄
gcbo
“正执行回调操作”的控件图柄指令
gco
获得当前对象的柄
get
获得对象特性
getappdat
获得应用程序定义数据
isappdata
检验是否应用程序定义数据
reset
重设对象特性
rmappdata
删除应用程序定义数据
set
建立对象特性
setappdata
建立应用程序定义数据
15.5 Loko
closereq
关闭图形窗请求函数
ishandle
若是图柄代号侧为真
newplot
下一个新图
16 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
align
对齐用户控件和轴
cbedit
编辑回调函数
ginput
从鼠标得到图形点坐标
guide
设计 GUI
menu
创建菜单
menuedit
菜单编辑
propedit
属性编辑
uicontrol
创建用户界面控制
uimenu
创建用户界面菜单
17 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
17.1 矩阵分析(Matrix analysis)
blanks
空格符号
cellstr
通过字符串数组构建字符串的元胞数组
char
创建字符传输组或者将其他类型变量转化为字符串数组
deblank
删除最后的空格
double
把字符串变成 ASCII 码值
eval
执行串形式的 MATLAB 表达式
17.2 矩阵分析(Matrix analysis)
iscellstr
若是字符串组成的元胞数组则为真
ischar
若是字符串则为真
isletter
串中是字母则为真
isspace
串中是空格则为真
isstr
若是字符串则为真
17.3 矩阵分析(Matrix analysis)
base2dec
X -进制串转换为十进制整数
bin2dec
二进制串转换为十进制整数
dec2base
十进制整数转换为 X 进制串
dec2bin
十进制整数转换为二进制串
dec2hex
十进制整数转换为 16 进制串
findstr
在一个串中寻找一个子串
hex2dec
16 -进制串转换为十进制整数
hex2num
16 -进制串转换为浮点数
int2str
将整数转换为字符串
lower
把字符串变成小写
mat2str
将数组转换为字符串
num2str
把数值转换为字符串
strcat
把多个串连接成长串
strcmp
比较字符串
strcmpi
比较字符串(忽略大小写)
strings
MATLAB 中的字符串
strjust
字符串的对齐方式
strmatch
逐行搜索串
strnomp
比较字符串的前 N 个字符
strncmpi
比较字符串的前 N 个字符(忽略大小写)
strrep
用另一个串代替一个串中的子串
strtok
删除串中的指定子串
strvcat
创建字符串数组
str2mat
将字符串转换为含有空格的数组
str2num
将字符串转换为数值
upper
把字符串变成大写
18 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
clc
清除指令窗口
disp
显示矩阵和文字内容
fprintf
把格式化数据写到文件或屏幕
home
光标返回行首
input
提示键盘输入
load
从磁盘中调入数据变量
pause
暂停
sprintf
写格式数据到串
sscanf
在格式控制下读串
19 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
clock
时钟
cputme
MATLAB 战用 CPU 时间
date
日期
etime
用 CLOCK 计算的时间
now
当前时钟和日期
pause
暂停
tic
秒表启动
toc
秒表终止和显示
20 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
20.1 矩阵分析(Matrix analysis)
cell
创建元胞变量
char
创建字符传输组或者将其他类型变量转化为字符串数组
double
转化为 16 位相对精度的浮点数值对象
function handle
函数句柄
inline
创建内联函数
JavaArray
构建 Java 数组
JavaMethod
调用某个 Java 方法
JavaObject
调用 Java 对象的构造函数
single
转变为单精度数值
sparse
创建稀疏矩阵
struct
创建构架变量
uint8(unit16 、 unit32)
转换为 8(16 、 32) 位无符号整型数
int8(nit16 、 nit32)
转换为 8(16 、 32) 位符号整型数
20.2 Jjk
cat
把若干数组串接成高维数组
ndims
数组 A 的维数
ndgrid
为 N - D 函数和插补创建数组
ipermute
广义反转置
permute
广义非共轭转置
shiftdim
维数转换
squeeze
使数组降维
20.3 Jkll
cell
创建元胞变量
celldisp
显示元胞数组内容
cellfun
元胞数组函数
cellplot
图示元胞数组的内容
cell2struct
把元胞数组转换为构架数组
deal
把输入分配给输出
is cell
若是元胞则为真
num2 cell
把数值数组转换为元胞数组
struct2 cell
把构架数组转换为元胞数组
20.4 Kk
fieldnames
获取构架的域名
getfield
获取域的内容
isfield
若为给定构架的域名则为真
isstruct
若是构架则为真
rmfield
删除构架的域
setfield
指定构架域的内容
struct
创建构架变量
20.5 Pp
@
创建函数句柄
functions
列举函数句柄对应的函数
func2str
将函数句柄数组转换为字符串
str2func
将字符串转换为函数句柄
20.6 Pp
dlass
查明变量的类型
isa
若是指定的数据类型则为真
inferiorto
级别较低
isjava
若是 java 对象则为真
isobject
若是对象则为真
methods
显示类的方法名
substruct
创建构架总量
superiorto
级别较高
21 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
demo
演示程序
flow
无限大水体中水下射流速度数据
intro
幻灯演示指令
peaks
产生 peaks 图形数据
22 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra )
22.1 矩阵分析(Matrix analysis)
diff
求导数
limit
求极限
int
计算积分
jacobian
Jacobian 矩阵
symsum
符号序列的求和
trylor
Trylor 级数
22.2 Ppp
det
行列式的值
diag
创建对角阵,抽取对角向量
eig
矩阵特征值和特征向量
expm
矩阵指数
inv
矩阵的逆
jordan
Jordan 分解
null
零空间
poly
特征多项式
rank
秩
rref
转换为行阶梯形
svd
奇异值分解
tril
抽取下三角阵
triu
抽取上三角阵
22.3 [][[
collect
合并同类项
expand
对指定项展开
factor
进行因式或因子分解
horner
转换成嵌套形式
numden
提取公因式
simple
运用各种指令化简符号表达式
simplify
恒等式简化
subexpr
运用符号变量置换子表达式
subs
通用置换指令
22.4 [[]
compose
求复函数
dsolve
求解符号常微分方程
finverse
求反函数
fminunc
拟牛顿法求多元函数极值点
fsolve
解非线性方程组
lsqnonlin
解非线性最小二乘问题
solve
求解方程组
22.5 Ggg
digits
设置今后数值计算以 n 位相对精度进行
vpa
给出数值型符号结果
22.6 Ppp
fourier
Fourier变换
ifourier
Fourier反变换
ilaplace
Ilaplace反变换
iztrans
Z反变换
laplace
Ilaplace变换
ztrans
Z变换
22.7 Ooo
char
把符号对象转化为字符串数组
double
把符号常数转化为 16 位相对精度的浮点数值对象
poly2sym
将多项式转换为符号多项式
sym2poly
将符号多项式转换为系数向量
22.8 Ooo
ccode
符号表达式的 C 码表达式
findsym
确认表达式中符号“变量”
fortran
符号表达式的 fortran 表达式
latex
符号表达式的 LaTex 表示
pretty
习惯方式显示
sym
定义基本符号对象
syms
定义基本符号对象
22.9 Ooo
isvarname
检查是否为有效的变量名
vectorize
将字符串表达式或内联函数对象向量化
22.10 Kkk
ezcontour
画等位线
ezcontourf
画填色等位线
ezmesh
画网线图
ezmeshc
带等位线的网线图
ezplot
绘制符号表达式的图形
ezplot2
画三维曲线
ezpolar
画极坐标曲线
ezsurf
画曲面图
ezsurfc
画带等位的曲面图
funtool
函数计数器
rsums
Riemann 求和
taylortool
Taylor 级数计数器
22.11 Jjjj
maple
进入MAPLE工作空间计算
mfun
对MAPLE中若干经典特殊函数实施数值计算
mfunlist
能被mfun计算的MAPLE经典特殊函数列表
mhelp
查阅MAPLE 中的库函数及其调用方法
procread
把按MAPLE 格式写的源程序读入 MAPLE工作空间
23 Pppp
bode
波特图
butter
Butter Worth 低通道滤波器
gplot
拓扑图
hosted
MAPLAB 服务中心识别号
impulse
冲激响应
isparse
若是稀疏矩阵则为真
lsim
任意输入下的响应
ltiview
响应分析的图形用户界面
matlabrc
MAPLAB 的主启动文件
mbuild
独立可执行文件编译器预配置及创建
mcc
编译宏指令
mex
把 C 码文件编译成 MEX 文件
mineral
消去传递函数分子、分母公因子
nyquist
Nyquist 图
rlocus
跟轨迹
setstr
把 ASCII 码翻译成串
sim
运行 Simulink 模型
ss
利用状态方程四对组生成 LTI 对象
Simulink
打开 Simulink 集成窗口
ssdata
从 LTI 对象获取状态方程四对组
startup
启动 MATLAB 时的自动执行 M 文件
step
单位阶跃响应
tf
利用传递函数二对组生成 LTI 对象
tfdata
从 LTI 对象获取传递函数二对组
zpk
利用零极点增益三对组生成 LTI 对象
zpkdata
从 LTI 对象获取零极点增益三对组
loodfor
关键词检索
notebood
创建或打开 M -book 文件