




已阅读5页,还剩99页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、MATLAB小传与外观,马新生 南昌大学数学系,讲座人:肖水明,1-1 MATLAB 小传(1),由MathWorks公司于1984年推出的数学软件。 名称是由矩阵实验室MATrix LABoratory)所合成。 MATLAB为各种动态系统仿真、数字讯号处理、科学计算、科学可视化等领域的标准程序语言。 MATLAB 的许多的核心计算技术是源自于 LINPACK 及 EISPACK(现升级为LAPACK),见。,1-1 MATLAB 小传(2),MATLAB早在1978年即已出现,是用 Fortran 编写的免费软件,其作者是当时任教于新墨西哥大学的 Cleve Moler 教授。 ack Little(又称为 John Little)将 MATLAB 以C语言重写,并于 1984 年成立 MathWorks公司,首次推出 MATLAB 商用版。 MathWorks在 Newsgroup 上进行对使用者的技术指导,在 WWW 兴起之后,就提供各项技术支持与搜寻功能,并在内联网(Intranet)方面,以 Web 与数据库的整合来进行软件 bug 的追踪、修复与管理。,MATLAB简介,MATLAB 早期以矩阵运算为主,第 4 版推出句柄式图形(Handle Graphics),第 5 版中允许使用者建立许多不同的资料型态,(如多维数组、结构数组、异质数组等)。 MATLAB 是一个计算核心,围绕着这个计算核心,有许多针对不同应用所开发的应用程序,称为工具箱(Toolboxes) 。,Simulink 及 Stateflow,Simulink 专用于连续或离散时间的动态系统仿真。 Simulink 是一个仿真核心,围绕着这个核心所开发的应用程序称为方块集(Blocksets)。 Stateflow 则用于仿真有限状态机(Finite State Machines)或事件驱动系统(Event-driven Systems) 。,MATLAB、Simulink 及 Stateflow,MATLAB、Simulink 及 Stateflow三者的关系: 由现有 Simulink 与 Stateflow 的 C 程序代码自动产生功能,以及不动点运算方块集(Fixed-point Blockset)与 C 程序代码至 VHDL 的自动转换功能,可看出高级的系统仿真或低级的芯片算法设计,都可用 MATLAB/Simulink/Stateflow 及相关的工具箱来达成。,1-2学习Matlab的基本原因,不希望学生在编程上化太多时间,目的不是学习编程 合理利用可以节约大量的时间:为什么相同的时间别人比自己做出了更多的事情 面向对象的思想带来巨大的好处 紧密结合科学的前沿 From BBS:博士论文=Matlab+word,1-3 网络资源,USENET新闻组 MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向 网络上的工具箱 / /matlabcentral/fileexchange/loadCategory.do,1-3 网络资源(2),BBS 哈尔滨工业大学bbs: telnet:/ 上海交通大学bbs: telnet:/ 清华大学bbs mathtools www服务 Matlab 大观园: ,1-4 与MATLAB相似的软件,Mathmatica 数学计算功能。复杂符号计算,主要在理论界 Mathcad 数学文字软件。直接写出报告 Maple 符号计算功能强大 SciLab 免费的matlab科隆体 仿真软件:MATRIXx、VisSim等等,1-5 MATLAB 第六版的外观,启动方式: 以鼠标双击桌面上的MATLAB图标 在开始的主菜单下,选取程序/ Matlab / MATLAB 6.5 于 DOS 窗口輸入下列命令来启动 MATLAB: MATLAB 根目录binmatlab 界面是以 Java 编写,因此第一次启动時间较久。外观如下:,1-5 MATLAB 第六版的外观(2),MATLAB 桌面被分割成三个小窗口: 左上角是工作空间变量列表(Workspace Window) 左下角是命令历史列表(List of Command History) 右边则是命令窗口(Command Window),下拉式菜单(Pull-down Menu),下拉式菜单: File,Edit,View,Window,Help 等,其中较重要的是 File/Preference 下的图形界面,可以设定个人的喜好值,如下:,工作空间浏览器,图示为 ,可用于浏览位于工作空间中的变量,包含其名称、数据形式、维数大小、占用位元大小等,其外观如下:,路径浏览器,图示为 ,功能是以窗口的方式来对搜寻路径进行新增、修改或刪除等功能,其外观如下:,在线帮助窗口,图示为 ,可开启 MATLAB 的在线帮助窗口,并将 MATLAB 所有的指令分门別类。外观如下:,View的下拉式菜单(1),Command Window: 开启或关闭命令窗口。 Command History: 开启或关闭命令历史列表。 Current Directory: 开启或关闭目录检视窗口。 Workspace: 开启或关闭工作空间变量列表。 Launch Pad: 开启或关闭启动面版。 Profiler: 开启或关闭计時器控制页。 Profiler: 开启或关闭技术帮助页。,View的下拉式菜单(2),点选View/Desktop Layout/Five Panel可同時开启其中较重要的五个窗口: 点选View/Desktop Layout/Default一切就可恢复原狀。,1-6 MATLAB 第七版的外观,MATLAB 7.0 (R14) 发行于 2004 年6月,其启动方法和第六版相同,外观如下:,活页夹型的MATLAB桌面,点选Desktop/Desktop Layout/All Tabbed可将各个小窗口改为活页夹型。 (由左图可以看出 共有六个小窗口) 若要回到缺省的桌面配置,可点选Desktop/Desktop Layout/Default,二、初探MATLAB,马新生 南昌大学数学系,2-1 使用变量与基本运算,一般数学符号运算 在MATLAB 命令窗口(Command Window)內的提示符号()之后输入运算式,并按Enter 键即可。例如: (5*2+3.5)/5 ans = 2.7000 若不想让 MATLAB 每次都显示运算结果果,只需在运算式最后加上分号(;)即可,例如: (5*2+3.5)/5;,变量命名規则与使用,第一个字母必须是英文字母。 字母间不可留空格。 最多只能有 31 个字母,MATLAB 会忽略多余字母。 MATLAB 在使用变量时,不需预先经过变量声明(Variable Declaration),而且所有数值变量均以预设的 double 数据形式储存。,加入註解,若要加入注解(Comments),可以使用百分比符号(%)例如: y = (5*2+3.5)/5; % 将运算结果果储存在变量 y,但不显示于屏幕 z = y2 % 将运算结果果储存在变量 z,并显示于屏幕 z = 7.2900,2-2 向量与矩阵的处理,MATLAB 中的变量还可用来储存向量(Vectors)及矩阵(Matrix),以进行各种运算,例如: s = 1,3,5,2;% 注意 的使用,逗号可以改为空隔 t = 2*s+1 t = 3 7 11 5,矩阵的各种处理,MATLAB 亦可取出向量中的一个元素或一部份来做运算,例如: t(3) = 2 % 将向量 t 的第三个元素更改为 2 t = 3 7 2 5 t(6) = 10 % 在向量 t 加入第六个元素,其值为 10 t = 3 7 2 5 0 10 t(4) = % 将向量 t 的第四个元素刪除, 代表空集合 t = 3 7 2 0 10,建立大小为 mn的矩阵,在每一行结果尾加上分号(;),例如: A = 1 2 3 4; 5 6 7 8; 9 10 11 12; % 建立 34 的矩阵 A A % 显示矩阵 A 的內容 A = 1 2 3 4 5 6 7 8 9 10 11 12,mxn矩阵的各种处理之一, A(2,3) = 5 % 将矩阵 A 第二行、第三列的元素值,改变为 5 A = 1 2 3 4 5 6 5 8 9 10 11 12 B = A(2,1:3) % 取出矩阵 A 的第二行、第一至第三列,并储存成矩 % 阵 B B = 5 6 5,mxn矩阵的各种处理之二, A = A,B % 将矩阵 B转置后、再以列向量并入矩阵 A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:, 2) = % 刪除矩阵 A 第二列(:代表所有行,代表空矩阵) A = 1 3 4 5 5 5 8 6 9 11 12 5,mxn矩阵的各种处理之三, A = A; 4 3 2 1 % 在原矩阵 A 中,加入第四行 A = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 A(1 4, :) = % 刪除第一、四行(:代表所有列,是空矩阵) A = 5 5 8 6 9 11 12 5,2-3 常用数学函数,MATLAB 是一个科学计算软件,因此可以使用常用的数学函数,如: y = abs(x) % 取 x 的绝对值 y = sin(x) % 取 x 的正弦值 y = exp(x) % 自然指数 exp(x) y = log(x) % 自然对数 ln(x) MATLAB 也支持复数运算,通常以 i 或 j 代表单位虛数,向量矩阵的运算,有一些函数是特別针对向量而设计 y = min(x) % 向量 x 的极小值 y = max(x) % 向量 x 的极大值 y = mean(x) % 向量 x 的平均值 y = sum(x) % 向量 x 的总和 y = sort(x) % 向量 x 的排序 问题:如果x是一个矩阵,请通过Matlab的帮助命令,了 解以上函数的运算结果与向量时的运算结果的区 别。,在线支持,help:用来查询已知指令的用法。 lookfor:用来寻找未知的指令。找到所需的指令后,即可用在help窗口进一步找出其用法。 直接点击help 按钮。,2-4 程序流程控制,MATLAB 提供循环(Loops)及条件判断(Conditions)等程序流程控制(Flow Control)的指令 for 循环 For 变量 = 向量 运算式; end,流程控制,while 循环(While-loop) while 条件式 运算式; end if else end if 条件式 运算式; else 运算式; end,2-5 M 文件,若要一次执行大量的 MATLAB 指令,可将这些指令存放于一个文件名为 m 的文件,并在 MATLAB 指令提示符下键入此文件的文件名即可。 myTest % 执行 myTest.m,2-6 搜索路径,若要检查MATLAB 已设定的搜索路径,点击File-set path,再次窗口可以增加、删除路径等操作,2-7 工作空间与变量的储存及装载,MATLAB 在进行各种运算时,会将变量储存在内存內,这些储存变量的内存空间称为基本工作空间(Base Workspace)或简称工作空间(Workspace) 若要检查现存于工作空间(Workspace)的变量,可点击Workspace选项卡。,检查工作空间变量的其他方式,使用 clear 指令来清除或刪除工作空间內的某一特定或所有变量,以避免内存的闲置与浪費 不加任何选項(Options)时,save 指令会将工作空间內的变量以二进制(Binary)的方式储存至文件名为 mat 的文件 save:将工作空间的所有变量储存到名为 matlab.mat 的 二进制文件。 save filename:将工作空间所有变量储存到名为 filename.mat 的二进制文件。 save filename x y z:将变量 x、y、z 储存到名为 filename.mat 的二进制文件。,2-8 退出MATLAB,在命令窗口內,键入 exit 指令。 在命令窗口內,键入 quit 指令。 直接关闭 MATLAB 的命令窗口。,三、MATLAB 程序设计入门篇 二维平面绘图,2007,7,3-1 基本的绘图指令,Plot : 最基本的绘图指令 对 x 坐标及相对应的 y 坐标进行作图 范例3-1:plotxy01.m,x = linspace(0, 2*pi,100); % 在 0 到 2 间,等分取 100 个点 y = sin(x); % 计算 x 的正弦函数值 plot(x, y); % 进行二维平面描点作图,Plot基本绘图-1,linspace(0, 2*pi) 产生从 0 到 2 且长度为 100 (预设值)的向量 x y 是对应的 y 坐标 只给定一个向量 该向量则对其索引值(Index)作图 plot(y)和plot(1:length(y), y)会得到相同的结果,Plot基本绘图-2 (I),一次画出多条曲线 将 x 及 y 坐标依次送入plot 指令 范例3-2:plotxy02.m,x = linspace(0, 2*pi,100); % 在 0 到 2 间,等分取 100 个点,100为系统的默认值 plot(x, sin(x), x, cos(x), x, sin(x)+cos(x); % 进行多条曲线描点作图,Plot基本绘图-2 (II),Plot(x,sin(x), x, cos(x), x, sin(x)+cos(x);,画出多条曲线时,会自动轮换曲线颜色,Plot基本绘图-3 (I),若要以不同的线标(Marker)来作图 范例3-3:plotxy03.m,x = linspace(0, 2*pi); % 在 0 到 2 间,等分取 100 个点 plot(x, sin(x), o, x, cos(x), x, x, sin(x)+cos(x), *);,Plot基本绘图-3 (II),Plot基本绘图-4 (I),只给定一个矩阵 y 对矩阵 y 的每一个列向量(Column Vector)作图 范例3-4:plot04.m,y = peaks; % 产生一个 4949 的矩阵 plot(y); % 对矩阵 y 的每一个行向量作图,Plot基本绘图-4 (II),peaks 指令产生一个4949的矩阵,代表二维函数的值 plot(y) 直接画出 49 条直线 类似于从侧面观看 peaks 函数,Plot基本绘图-5 (I),x 和 y 都是矩阵 plot(x, y) 会取用 y 的每一个列向量和对应的 x 列向量作图 范例3-5:plotxy05.m,x = peaks; y = x; % 求矩阵 x 的转置矩阵 x plot(x, y); % 取用矩阵 y 的每一行向量,与对应矩阵 x % 的每一个行向量作图,Plot基本绘图-5 (II),提示,一般情况下,MATLAB 将矩阵视为列向量的集合 对只能处理向量的函数(Ex : max、min、 mean) 给定一个矩阵,函数会对矩阵的列向量一一进行处理或运算,Plot基本绘图-6 (I),z 是一个复数向量或矩阵 plot(z) 将 z 的实部(即 real(z)和虚部(即 imag(z)当成 x 坐标和 y 坐标来作图, 其效果等于 plot(real(z), imag(z) 范例3-6:plotxy06.m,x = randn(30); % 产生 3030 的随机数(正态分布)矩阵 z = eig(x); % 计算 x 的特征值 plot(z, o) grid on % 画出网格线,Plot基本绘图-6 (II),x 是一个 3030 的随机数矩阵 z 则是 x 的特征值(Eigenvalue) z 是复数向量,且每一个复数都和其共轭复数同时出现,因此画出的图是上下对称,基本二维绘图指令,Plot基本绘图-7 (I),Semilogx指令 使 x 轴为对数刻度,对正弦函数作图 范例plotxy07.m,x = linspace(0, 8*pi); % 在 0 到 8 间,等分取 100 个点 semilogx(x, sin(x); % 使 x 轴为对数刻度,并对其正弦函数作图,Plot基本绘图-7 (II),X轴为对数刻度,Plot基本绘图-8 (I),plotyy 指令 画出两个刻度不同的 y 轴 范例3-8:plotxy08.m,x = linspace(0, 2*pi); % 在 0 到 2 间,等分取 100 个点 y1 = sin(x); y2 = exp(-x); plotyy(x, y1, x, y2); % 画出两个刻度不同的 y 轴,分别是 y1, y2,Plot基本绘图-8 (II),y1 的刻度是在左手边 y2 的刻度是在右手边 两边的刻度不同,Y1的刻度,Y2的刻度,3-2 图形的控制,plot 指令,可以接受一个控制字符串输入 用以控制曲线的颜色、格式及线标 使用语法 plot(x, y,CLM) C:曲线的颜色(Colors) L:曲线的格式(Line Styles) M:曲线所用的线标(Markers),图形控制范例-1 (I),用黑色点线画出正弦波 每一数据点画上一个小菱形 范例3-9:plotxy09.m,x = 0:0.5:4*pi; % x 向量的起始与结束元素为 0 及 4 , % 0.5为各元素相差值 y = sin(x); plot(x, y,k:diamond) % 其中k代表黑色,:代表点 % 线,而diamond 则指定菱形为曲 % 线的线标,图形控制范例-1 (II),plot 指令的曲线颜色,plot 指令的曲线格式,plot 指令的曲线线标 (I),plot 指令的曲线线标 (II),3-3 图轴的控制,plot 指令会根据坐标点自动决定图轴范围 也可以使用 axis 指令指定图轴范围 使用语法: axis(xmin, xmax, ymin, ymax) xmin , xmax:指定 x 轴的最小和最大值 ymin , ymax:指定 y 轴的最小和最大值,图轴控制范例-1 (I),画出正弦波在 y 轴介于 0 和 1 的部份 范例3-10:plotxy10.m,x = 0:0.1:4*pi; % 起始与结束元素为 0 及 4,0.1 为间隔步长 y = sin(x); plot(x, y); axis(-inf, inf, 0, 1); % 画出正弦波 y 轴介于 0 和 1 的部份,图轴控制范例-1 (II),inf指令: 以数据点(上例: x 轴的数据点)的最小和最大值取代之,图轴控制范例-2 (I),指定图轴上的网格线点(Ticks) 范例3-11:plotxy11.m,x = 0:0.1:4*pi; plot(x, sin(x)+sin(3*x) set(gca, ytick, -1 -0.3 0.1 1); % 在 y 轴加上网格线点 grid on % 加上网格线,图轴控制范例-2 (II),grid on:加上网格线 gca: get current axis的简称 传回目前使用中的图轴 gca属Handle Graphics的指令,第七章会有更详细的说明,使用者加入的网格线点和文字,图轴控制范例-3 (I),将网格线点的数字改为文字 范例3-12:plotxy12.m,x = 0:0.1:4*pi; plot(x, sin(x)+sin(3*x) set(gca, ytick, -1 -0.3 0.1 1); % 改变网格线点 set(gca, yticklabel, 极小,临界值,崩溃值,极大); % 改变网格线点的文字 grid on % 加上网格线,图轴控制范例-3 (II),Subplot,subplot 在一个窗口产生多个图形(图轴) 一般形式为subplot(m, n, p) 将窗口分为 m n 个区域 下一个 plot 指令绘图于第 p 个区域 p 的算法为由左至右,一列一列,图轴控制范例-4 (I),同时画出四个图于一个窗口中 范例3-13:plotxy13.m,x = 0:0.1:4*pi; subplot(2, 2, 1); plot(x, sin(x); % 此为左上角图形 subplot(2, 2, 2); plot(x, cos(x); % 此为右上角图形 subplot(2, 2, 3); plot(x, sin(x).*exp(-x/5); % 此为左下角图形 subplot(2, 2, 4); plot(x, x.2); % 此为右下角图形,图轴控制范例-4 (II),Subplot(2,2,1),Subplot(2,2,3),Subplot(2,2,2),Subplot(2,2,4),图轴控制范例-5 (I),长宽比(Aspect Ratio) 一般图轴长宽比是窗口的长宽比 可在 axis 指令后加不同的字符串来修改 范例3-14:plotxy14.m,t = 0:0.1:2*pi; x = 3*cos(t); y = sin(t); subplot(2, 2, 1); plot(x, y); axis normal subplot(2, 2, 2); plot(x, y); axis square subplot(2, 2, 3); plot(x, y); axis equal subplot(2, 2, 4); plot(x, y); axis equal tight,图轴控制范例-5 (II),axis normal,axis equal,axis square,axis square tight,改变图轴长宽比的指令,改变目前图轴长宽比的指令 需在 plot 指令之后运行才能发挥效用,改变图轴背景颜色的指令,colordef 改变图轴与窗口之背景颜色 先运行 colordef 指令,其后 plot 指令产生的图形才有效用,grid 和 box 指令,画出网格线或画出图轴外围的方形,3-4 加入说明文字,在图形或图轴加入说明文字,增进整体图形的可读性,说明文字范例-1 (I),范例3-15:plotxy15.m,subplot(1,1,1); x = 0:0.1:2*pi; y1 = sin(x); y2 = exp(-x); plot(x, y1, -*, x, y2, :o); xlabel(t = 0 to 2pi); ylabel(values of sin(t) and e-x) title(Function Plots of sin(t) and e-x); legend(sin(t),e-x);,说明文字范例-1 (II),legend 指令 画出一小方块,包含每条曲线的说明 为特殊符号 产生上标、下标、希腊字母、数学符号等 遵循一般 LaTex 或 TeX数学模式,说明文字范例-2 (I),text指令 使用语法: text(x, y, string) x、y :文字的起始坐标位置 string :代表此文字 范例3-16:plotxy16.m,x = 0:0.1:2*pi; plot(x, sin(x), x, cos(x); text(pi/4, sin(pi/4),leftarrow sin(pi/4) = 0.707); text(5*pi/4, cos(5*pi/4),cos(5pi/4) = -0.707rightarrow, HorizontalAlignment, right);,说明文字范例-2 (II),HorizontalAlignment及right指示 text 指令将文字向右水平靠齐,gtext指令,使用语法 gtext(string) 在图上点选一位置后,string 显示在其上。 gtext 只能用在二维平面绘图,3-5 其它平面绘图指令,各种二维绘图指令,其它平面绘图范例-1 (I),已知数据的误差范围,用 errorbar 表示 以 y 坐标高度 20% 作为做数据的误差范围 范例3-17:plotxy17.m,x = linspace(0,2*pi,30); % 在 0 到 2间,等分取 30 个点 y = sin(x); e = y*0.2; errorbar(x,y,e) % 图形上加上误差范围 e,其它平面绘图范例-1 (II),误差范围,其它平面绘图范例-2 (I),fplot 指令 对剧烈变化处进行较密集的取样 范例3-18:plotxy18.m,fplot(sin(1/x), 0.02 0.2); % 0.02 0.2是绘图范围,其它平面绘图范例-2 (II),此区作较精确的取点绘图,其它平面绘图范例-3 (I),polar 指令 产生极坐标图形 范例3-19:plotxy19.m,theta = linspace(0, 2*pi); r = co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年菏泽市中考历史真题(含答案及解析)
- 行刑衔接培训课件下载
- 2025年度学生实习就业指导与全面权益保护服务协议
- 2025年SET标准电子签名认证系统安全审查及优化合同
- 2025年智能硬件产品定制加工技术保密及知识产权保护协议
- 2025年小区门卫服务及社区文化活动参与管理合同
- 2025年新能源汽车核心部件玻璃纤维增强塑料供应与组装合同
- 2025年新型环保爆破施工方案设计与咨询服务合同
- 2025年医疗耗材采购及全国物流配送与售后服务合同
- 2025年综合性医院消防设施设备采购与维护服务合同
- 小英雄雨来练习题(含答案)
- 目标计划行动-PPT
- OTSC吻合夹系统的临床应用讲义
- 2023年杭州市中小学教师教学能力水平考核
- 卫星通信与卫星网络PPT完整全套教学课件
- 转岗申请表(标准样本)
- 中医病证诊断疗效标准
- 数独课件完整版
- GA 568-2022警服夏执勤短袖衬衣
- 淮扬菜-淮安淮扬菜名单大全
- 2021年秋期新人教版部编本六年级语文上册教材解读
评论
0/150
提交评论