matlab实验指导书
《MATLAB 基础 》
实验指导书
前言
MATLAB 就是一种集数值计算、可视化建模、仿真与图形处理等多种功能于一体的优秀编程、仿真工具,被誉为“巨人肩膀上的工具”、“演算纸式的编程语言”,就是从事科学研究、工程计算的广大科技工作者、理工类高校师生确认为必须掌握的计算工具,就是从理论通向实际的桥梁,也就是最可信赖的科技资源之一。为了配合学生上机实践,更好掌握 MATLAB 的基本使用技能,了解 MATLAB 的编程风格,以及将所学课程与MATLAB实践相结合,特别编写了本实验讲义。其主要内容包括:MATLAB入门及基本操作,矩阵的使用及数据可视化方法,脚步文件及函数的编写,以及Simulink仿真模块的使用等。 MATLAB内容丰富,内嵌了许多功能函数。为了方便课堂教学使用,也顾及查阅功能,在书后的索引中按照功能函数对常见MATLAB函数进行了分类,以备读者查阅需要。由于编者水平有限,书中难免存在不妥之处,恳请广大读者指正。同时,我们也会在适当时间进行修订与补充。
目录
实验一 熟悉MATLAB环境 ............................................................................... 2 实验二 数值数组创建、应用及可视化 .............................................................. 4 实验三 字符串数组的使用、简单脚本文件与函数的编写 .............................. 7 实验四 数据可视化方法 .................................................................................... 11 实验五 简单数据分析 ........................................................................................ 15 实验六 简单图形用户界面设计 ........................................................................ 15 附录 MATLAB主要函数指令表(按功能分类) ................................................ 16
matlab实验指导书
实验一 熟悉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实验指导书
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 画出
matlab实验指导书
A,B,C,D,E,G。再输入一些数组,进行类似运算。
3 .在命令窗口用 plot 指令粗略描绘下列各函数的波形(其中对于连续信号可取时间间隔为 0、001,可参瞧下面的a的实例来实现,数学函数 MATLAB 实现参见附录)
a、 f?t??3?e?t 0?t?3
实现方法,在命令窗口执行一下指令,可简单描绘出函数曲线: t=0:、001:3; y=3-exp(-t); plot(t,y)
b、 f?t??5e?t?3e?2t 0?t?3 c、 f?t??e?tsin?2?t? 0?t?3
d、 f?t??sin?at?/at ?2??t?2? (?在 MATLAB 中用pi来实现) f、 f?t??ek 0?k?5
三. M 脚本文件编写初步用 M 文件编辑器编写脚本文件重新描绘上面函数波形。
实验二 数值数组创建、应用及可视化
[实验目的]
1 .掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别。 2 .掌握标准数组生成函数与数组构造技法。 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 中第一个元素下标
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] % 创建复数数组的另一种方法