国家级精品课程 控制系统仿真与CAD 第二章 MATLAB 语言程序设计基础

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
3.4 空间直线的方程.
第三章 函数逼近 — 最佳平方逼近.
Tool Command Language --11级ACM班 金天行.
UI(用户界面)集训班 Illustrator 高级班.
PRESENTED BY OfficePLUS
运用Matlab GUI辅助大学物理实验 蒋志洁 中山大学 物理学院
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
Computer Graphics 计算机图形学基础 张 赐 Mail: CSDN博客地址:
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第7章 用户图形界面设计.
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
走进编程 程序的顺序结构(二).
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第一讲: 基本流程(1).
计算机数学基础 主讲老师: 邓辉文.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
数学模型实验课(三) 插值与三维图形.
第二章 Java语言基础.
第10章 高级用户界面设计 10.1 菜单设计 10.2 通用对话框 10.3 图像列表框控件 10.4 树形视图控件
Windows 7 的系统设置.
POWERPOINT TEMPLATE HI.
双曲线的简单几何性质 杏坛中学 高二数学备课组.
SOA – Experiment 2: Query Classification Web Service
第一章 函数与极限.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.函数 2.程序 3.图形 目的:掌握Matlab作平面曲线图的方法与技巧
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
产品推广 PRODUCT PROMOTION PRESENTED BY OfficePLUS.
VisComposer 2019/4/17.
Z Mathematical Model ‡ ' 图形处理.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
Word中活用“艺▪图▪框” 信息技术必修(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
第11章 MATLAB图形用户界面设计 11.1 菜单设计 11.2 对话框设计 11.3 图形用户界面设计工具
VRP教程 2011.
建模常见问题MATLAB求解  .
2.2矩阵的代数运算.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
§2 方阵的特征值与特征向量.
回归分析实验课程 (实验三) 多项式回归和定性变量的处理.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
实验二 MATLAB绘制图形.
第十七讲 密码执行(1).
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
Presentation transcript:

国家级精品课程 控制系统仿真与CAD 第二章 MATLAB 语言程序设计基础 东北大学信息学院 薛定宇

第二章 MATLAB 语言程序设计基础 MATLAB 语言程序设计基础 MATLAB语言绘图 MATLAB语言的图形用户界面设计 数据结构与语句结构 基本运算语句 程序流程 函数的编写与技巧 MATLAB语言绘图 二维与三维绘图 MATLAB语言的图形用户界面设计 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.1 MATLAB语言程序设计基础 MATLAB 语言的特色 本节主要内容 简洁高效性 强大的科学运算功能 方便易用的绘图功能 庞大的工具箱 强大的动态系统仿真功能——Simulink 本节主要内容 常量与变量、数据结构 基本语句结构、冒号表达式 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.1.1 常量与变量 常量(保留字符串) 变量: eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示 变量: 由字母引导,可以跟字母、数字和下划线等 区分大小写 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.1.2 数据结构 MATLAB下最常用数值量为双精度浮点数 符号型数据结构 占8个字节(64位),遵从IEEE记数法 有11个指数位、53位尾数及一个符号位 值域的近似范围为 其MATLAB表示为double() 符号型数据结构 syms 命令申明符号变量 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-1 显示e的前300位 其他数据结构 vpa(A) 显示符号变量 int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.1.3 MATLAB的基本语句结构 两种赋值语句: 直接赋值语句:赋值变量=赋值表达式 函数调用语句 后面加分号不显示结果 无返回变量,结果传给 ans 函数调用语句 [返回变量列表]=funname(输入变量列表) 一般对应于*.m函数 同一函数可以有不同的调用格式 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-2 无需预先定义维数 例2-3 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.1.4 冒号表达式与子矩阵提取 基本语句 例2-4 子矩阵提取 例2-5 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.2 基本数学运算 基本代数运算 矩阵转置:A’、A.’ 加减乘除:A+B、A-B、A*B、A\B、B/A 矩阵翻转:flipud(A)、fliplr(A)、rot90(A) 矩阵乘方:A^x 点运算:A.*B、A.^2、A.^A Kronecker乘积:kron(A,B) 控制系统仿真与CAD 国家级精品课程 2019/1/2

矩阵的逻辑运算 矩阵的比较运算 点运算举例 逻辑运算: &、|、~、xor() 运算符:>、<、==、>=、<=、~= 函数:find()、any()、all() 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.2.4 解析结果的化简与变换 化简函数 例2-5 变量替换 其他函数:collect()、numden()、expand()、factor() 例2-5 变量替换 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-6 双线性变换 基本数论运算 例2-8 取整 取整:floor()、ceil()、round()、fix() 其他:rat()、rem()、gcd()、lcm()、factor()、isprime() 例2-8 取整 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-9 有理化 Hilbert矩阵 例2-10 最大公约数、最小公倍数、因式分解 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.3 MATLAB编程:流程控制语句 循环结构 例2-11 求 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-12 求 循环与向量化运算 例2-13 求最小m 不适用for 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.3.2 条件转移语句 一般结构 例2-14 控制系统仿真与CAD 国家级精品课程 2019/1/2

其他流程控制结构 开关结构 试探结构 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.4 函数编写 M-脚本M-脚本与M-函数 例2-15 M-函数是MATLAB主流编程结构 M-函数:信息处理单元 M-脚本编程的麻烦 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.4.1 函数的基本结构 函数结构 特别函数 变元个数:nargin、nargout 变元内容:varargin、varargout 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-16 脚本变函数 例2-17 编程实例:Hilbert矩阵 选择变元 函数改写:*.m文件 生成 矩阵 如果只给一个输入变元,生成方阵 生成 矩阵 如果只给一个输入变元,生成方阵 控制系统仿真与CAD 国家级精品课程 2019/1/2

编程:核心部分 如何处理一个变元 完整程序 控制系统仿真与CAD 国家级精品课程 2019/1/2

递归调用编程结构 例2-18 阶乘 例2-19 不适合递归调用的问题:Fibonacci数列 计算量巨大 控制系统仿真与CAD 国家级精品课程 2019/1/2

可变输入、输出个数 利用 varargin、varargout 例2-20 现有函数(多项式乘法):conv(p1,p2) 期望编任意多个多项式相乘:convs(p1,p2,…) 程序实现 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.4.4 匿名函数与inline函数 不用编写*.m,定义函数的方法 匿名函数: 举例 可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用 匿名函数: 举例 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.5 二维图形绘制 可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容 基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.6.1 基本二维图形绘制语句 已知数据点(实验点或计算点) 可以容易地绘制出二维“曲线” 曲线是折线,不是真正的曲线 如果数据点足够密,则绘制的折线看起来像曲线,另外还可以对曲线进行光滑处理 控制系统仿真与CAD 国家级精品课程 2019/1/2

plot() 函数的扩展 t 是向量,y 是矩阵,能同时绘制多条曲线 t, y 是同样维数的矩阵,能绘制多条曲线 多组 t, y 值 控制系统仿真与CAD 国家级精品课程 2019/1/2

绘图语句选项 双纵坐标曲线绘制 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-21 需要检验:减小步长试试 例2-22 饱和非线性 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.5.2 二维曲线的标注方法 二维曲线修饰方法 坐标轴设置 其他设置 text、gtext、xlim、ylim函数 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.5.3 在MATLAB图形上添加文字标注 可以在图形窗口上添加直线、箭头和字符 事后修改图形属性 支持LaTeX格式的命令 颜色、字体大小、线宽 支持LaTeX格式的命令 下标:x_a、x_{abc} 上标:x^a、x^{abc} 字体设置:\bf、\it 高质量图形叠印:overpic.sty宏包 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.5.4 特殊图形绘制函数及举例 控制系统仿真与CAD 国家级精品课程 2019/1/2

例2-23 极坐标图 变换直角坐标可行 调用专门函数 试凑周期 图形属性修改 控制系统仿真与CAD 国家级精品课程 2019/1/2

子窗口分割 子窗口分割 不同子窗口下绘制不同的曲线 例2-24 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.5.5 隐函数的曲线绘制 隐函数绘制函数ezplot() 例2-25 参数方程 用底层语言难以绘制 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.6 三维图形的绘制方法 2.6.1 三维曲线的绘制方法 三维曲线 例2-26 MATLAB绘制命令 ezplot 绘制命令 控制系统仿真与CAD 国家级精品课程 2019/1/2

三维火柴杆曲线 叠印图形 三维填充图形 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.6.2 三维曲面的绘制方法 三维网格徒手画表面图绘制函数 例2-27 控制系统仿真与CAD 国家级精品课程 2019/1/2

其他图形 例2-28 分段函数 控制系统仿真与CAD 国家级精品课程 2019/1/2

网格和曲面图其他绘制函数 shading命令修饰 视角设置 三视图 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.6.3 局部图形的剪切处理 如果曲线、曲面数据中含有NaN,则绘图时会自动被忽略掉 例:二元函数 剪切掉 MATLAB绘制命令 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.7 MATLAB图形用户界面设计技术 图形界面的优劣往往决定着软件的档次 MATLAB的图形用户界面(Graphical User Interface, GUI)设计技术对设计出良好的通用软件十分重要 本节主要内容 图形界面设计工具Guide 句柄图形学及句柄对象属性 菜单系统设计 界面设计举例与技巧 工具栏设计 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.7.1 图形界面设计工具Guide 在命令窗口给出guide命令可以启动图形用户界面设计程序,得出如下选项 建立一个默认的空白界面(Blank GUI) 带有一些控件的界面(GUI with Uicontrols) 带有坐标轴和菜单的界面(GUI with Axes and Menu) 基本模态对话框(Modal Question Dialog 打开现有的GUI (Open Existing GUI) 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.7.2 句柄图形学及句柄对象属性 图形用户界面编程主要是对各个对象属性读取和修改的技术 窗口是一个对象,其上面的每个控件也都是对象,每个对象都有自己的属性 双击对象则可以打开对象属性浏览器 还可以使用set和get函数设置、读取属性 例如,用户可以通过这样的属性浏览器改变原型窗口的属性,如颜色等 控制系统仿真与CAD 国家级精品课程 2019/1/2

窗口对象的常用属性 MenuBar属性:设置图形窗口菜单形式 Name属性:设置图形窗口标题栏中内容 Units属性:窗口尺寸的单位,默认的像素点单位pixels,此外,normalized、inches Position属性:窗口位置属性,包含左下角坐标和宽度、高度这4个参数构成的向量 Toolbar属性:图形窗口可视编辑工具条 Visible属性:建立的窗口是否可见 控制系统仿真与CAD 国家级精品课程 2019/1/2

对象属性的读取与修改 前面提及的关键函数set和get 常用的句柄 gcf:得到当前窗口的句柄 gco:获得当前对象的句柄 gca:获得当前坐标系的句柄 gcs:获得当前Simulink模型的句柄 控制系统仿真与CAD 国家级精品课程 2019/1/2

简单界面设计实例 设计一个窗口,有两个控件:按钮和文本。按钮按下后在文本位置显示“Hello world!” 绘制原型窗口:打开空白原型窗口并在该窗口中绘制出这两个控件 控件属性修改:因为需要修改文本控件的属性 String属性:先设置成空白字符串 Tag属性:很关键,设置成txtHello 自动生成框架文件:建立了窗口之后,可以将其存成.fig文件,如c2eggui1.fig,这时会自动生成c2eggui1.m文件 控制系统仿真与CAD 国家级精品课程 2019/1/2

其他可能的回调函数 编写回调函数:为按钮对象编写回调函数,当按钮按下后,操作Tag为txtHello的控件 CloseRequestFcn:关闭窗口时响应函数。 KeyPressFcn:键盘键按下时响应函数。 WindowButtonDownFcn: 鼠标键按下时响应函数。 WindowButtonMotionFcn: 鼠标移动时响应函数。 WindowButtonUpFcn: 鼠标键释放时响应函数。 CreateFcn和DeleteFcn:建立和删除对象时响应函数。 CallBack:对象被选中时自动执行的回调函数 控制系统仿真与CAD 国家级精品课程 2019/1/2

其他控件的常用属性 Units与Position属性:与窗口定义是一致的 String属性:标注该控件的字符串 CallBack属性:该对象被选中和改变时,系统自动响应的函数。 Enable属性:表示此控件的使能状态 CData属性:将真色彩图形标注到控件上 TooltipString属性:提示信息显示, UserData属性:界面及控件之间数据交换与暂存 Interruptable属性:回调函数在执行时是否允许中断有关字体的属性:如FontAngle、 FontName 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.7.4 菜单系统设计 菜单编辑器Tools | Menu Editor 演示程序:c2eggui2.m 允许用户给窗口设计自己的菜单系统 添加菜单项 设计子菜单项 编写回调函数 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.7.5 界面设计举例与技巧 设计目标:设计一个窗口 建立主坐标系,以后绘制三维图形 建立函数编辑框,接受用户输入的绘图数据 建立两个按钮,一个用于启动绘图功能,另一个用于启动演示功能。 建立一组3个编辑框,设置光源的坐标值 建立一组3个复选框,决定各轴是否需要网格 建立一个列表框,描述着色方法。 控制系统仿真与CAD 国家级精品课程 2019/1/2

原型窗口界面的预期效果 控制系统仿真与CAD 国家级精品课程 2019/1/2

程序界面的任务分配 文件名:c2eggui3.m 控制系统仿真与CAD 国家级精品课程 2019/1/2

2.8.6 工具栏设计 Tools | Toolbar Editor 编写一个新图形界面 提供了一些标准的工具图标,有继承功能 用户可以自己添加新工具图标 如何给图标写回调函数 编写一个新图形界面 添加坐标系,绘制正弦曲线 使之包含x、y轴局部放大的工具图标 文件名:c2eggui4.m 控制系统仿真与CAD 国家级精品课程 2019/1/2

第二章小结 介绍了 MATLAB 语言的基本编程知识 数据结构:double()、syms、vpa() 语句格式:直接赋值、函数调用,冒号表达式 矩阵的代数运算、逻辑运算和比较运算 解析结果处理:simple()、subs()、collect()等函数 取整函数:floor()、cell()、fix()、roud()、rat() 数据处理:gcd()、lcm()、factor()、isprime()等 函数编程:varargin、nargin、递归调用 控制系统仿真与CAD 国家级精品课程 2019/1/2

编程的流程结构 MATLAB绘图函数 循环结构:for、while、break 转移结构:if、elseif、else 开关结构:switch、case 试探结构:try、catch MATLAB绘图函数 二维绘图:plot()、polar()、subplot()、ezplot() 三维绘图:plot3()、surf()、mesh()、meshgrid() 图形修饰:set()、get()、gtext()、title()等 视角设置:view() 控制系统仿真与CAD 国家级精品课程 2019/1/2

图形用户界面设计技术 面向对象的编程方式:对象、属性、方法 打开设计界面:guide 图形用户界面、对话框设计 菜单设计 工具栏设计 对象属性设置: 回调函数编写: 菜单设计 工具栏设计 控制系统仿真与CAD 国家级精品课程 2019/1/2