第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。

Slides:



Advertisements
Similar presentations
國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
Advertisements

第 5 章 中國的都市.
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
報告者:蕭曄鴻 班級:溫馨甲孝 指導教授:李開濟博士
單元名稱: 健康的兩性交往.
SCILAB第二章 二維平面繪圖 撰文者: 1.中央大氣科學系 楊善文 2. (如對本文有貢獻者,記得在此留名)
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
Word高级应用——制作毕业论文 Word高级应用——制作毕业论文 6..
引導者的角色 組別:第5組 4A1I0003 劉芷媛 4A1I0004 陳安琪 4A1I0014 陳佳瑩 4A1I0046 葉倢茹
第四章 MATLAB编程基础 4.1 概述 4.2 流程控制 4.3 脚本文件 4.4 函数文件 4.5 M文件调试 4.6 M文件性能分析
高考历史答题 技巧与方法.
MATLAB小结、 经典迭代法、CG.
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
古文閱讀 – 像虎伏獸 明 劉基 組員: 5號江依倫 6號江若薇 12號張珉芫 32號蔡燕如.
1012 MATLAB 教學 彭奕翔 2013/02/27.
雷 霆 战 机 By—谷恩轩&余万全.
公司法(六) 股份有限公司 1.
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
複習 struct score_Type{ int chinese,english; }; struct my_Type{
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
MATLAB介紹.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
Matlab M檔案 方煒 台大生機系.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
Z Mathematical Model ‡ ' MATLAB简介.
第1章 MATLAB概述 编者.
MATLAB、CTEX简介 及其 在教学中的应用
Application of Matlab Language
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Simulink模擬基礎 主要內容 Simulink簡介 Simulink模組庫 Simulink的基本操作 S-函數.
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
第八讲 MATLAB图形用 户界面设计.
CH5、SIMULINK仿真基础 在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。 1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
THE C PROGRAMMING LANGUAGE
引 言.
Introduction to MATLAB
程式設計 老師:戴自強 助教:楊斯竣.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
第1章 MATLAB操作基础 1.1 绪论 1.2 MATLAB概述 1.3 MATLAB的运行环境与安装 1.4 MATLAB集成环境 1.5 MATLAB帮助系统.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
第2章 MATLAB程序设计 编者.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构.
第9章 MATLAB环境下的仿真软件Simulink
MATLAB 程式設計入門篇 初探MATLAB
學這些有什麼好處呢? 為了把資料作更客觀之總結描述或比較多組資料。總而言之,就是要找出一個數能代表整組數據。
MATLAB 程式設計入門篇 初探MATLAB
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
控制系统计算机辅助设计-MATLAB语言与应用
感光世界 亞洲大學 資訊工程學系 學生:郭致翔、林壬午、黃智猷、陳奕升 指導教授:蔡志仁教授
第一单元 第1课 Matlab概述 1.MATLAB 2.工具箱 3.高效数值计算功能 4.完备的计算结果和编程可视化功能
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
第1章 MATLAB操作基础 1. 1 MATLAB概述 1. 2 MATLAB的运行环境与安装 1. 3 MATLAB集成环境 1
MATLAB 程式設計 程式除錯 方煒 台大生機系.
第7章 MATLAB工程计算.
MATLAB 实用教程.
群聚分析操作介紹 -以SOM和K-means為例
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
1.2.3 循环语句.
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
MATLAB 程式設計入門篇 程式除錯 張智星 (Roger Jang)
Presentation transcript:

第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。

m文件简介 用户如想灵活应用matlab去解决实际问题,充分调用matlab的科学技术资源,就需要编辑m文件 包含matlab语言代码的文件称为m文件,其扩展名为m。 编辑m文件可使用各种文本编辑器。

一、matlab的工作模式 指令驱动模式  通常matlab以指令驱动模式工作,即在matlab 窗口下当用户输入单行指令时,matlab 立即处理这条指令,并显示结果,这就是matlab命令行方式。  命令行操作时,matlab窗口只允许一次执行一行上的一个或几个语句。

例如: x1=0:10 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2=0:3:11 x2 = 0 3 6 9 x3=11.5:-3:0 x3 = 11.5000 8.5000 5.5000 2.5000

x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0 3 6 9 x3 = 11.5000 8.5000 5.5000 2.5000 在matlab窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。因此应编辑m文件。

m文件模式 命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。 将matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。 程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。

二、m文件的创建 m文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立m文件。如dos下的edit,windows的记事本和word等。 具体的创建方法: 在matlab命令窗 口点击file 菜单 new  m-file

2. 点击file — Save Workspace As 将工作空间中的内容存入文件。 3. !edit —— 用dos 下edit 编辑器编制m文件。 4. edit —— 用matlab自带的编辑器编制m文件。 5. word —— 用word编辑m文件。 m文件编辑器的设定 m文件编辑器可自己设定,设定方法是matlab命令窗口 options 菜单下点击 Edit Preference 选定m文件编辑器。

m文件编辑器缺省设置是 c:\windows\notepad.exe 还可设成:c:\windows\write.exe c:\windows\command\edit.com c:\program file\office\winword.exe 注意:所创建的m文件必须纳入matlab搜索路 径后,才能在matlab命令窗口运行。

matlab搜索路径的设置 matlab 缺省路径是c:\matlab\bin 1. cd c:\myfile 2. path(path,'c:\myfile') 3. 打开matlabrc.m文件,将c:\myfile加上即可。 4. 用pathtool路径浏览器设定当前目录。

三、matlab文件的类型 数据文件 .mat mat文件是matlab以标准二进制格式保存的数据文件,可将工作空间中有用的数据变量保存下来。 mat文件的生成和调用是由函数save和load完成的。 例如:load gatlin image(X)

colormap(gray);axis equal; axis('off')

命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。 2. m文件 m文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。 m文件有两类独立的m文件 — 称命令文件 可调用m文件 — 称函数文件 (1). 命令文件 — 简单的m文件 命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。

命令文件包括两部分:注释文件和程序文件 %RANK Number of linearly independent rows or columns. % K = RANK(X) is the number of singular values of X % that are larger than MAX(SIZE(X)) * NORM(X) * EPS. % K = RANK(X,tol) is the number of singular values of X that % are larger than tol. % Copyright (c) 1984-94 by The MathWorks, Inc. s = svd(x); if (nargin == 1) tol = max(size(x)) * max(s) * eps; end r = sum(s > tol); 程序部分

(2).matlab内置函数文件 matlab自定义的函数文件称内置函数文件 调用内置函数的方法:使用函数名并给出相应的入口、出口参数即可。 例如:sin.m函数——用type sin查不到。 调用格式:y=sin(2*x) 实际应用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y)

(3). 函数m文件— 需要输入变量,返回输出变量 又如 sqrt(x) —— 求x的平方根 abs(x)—— 求x的绝对值 det(a)—— 求行列式的值 等等。matlab拥有大量的内置数学函数,供我们在数值运算和符号运算中调用。 (3). 函数m文件— 需要输入变量,返回输出变量 matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了matlab 的能力。

对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。 这种用matlab语言创建定义新的matlab函数的功能,正体现了matlab语言强大的扩展功能。

函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段 特定规则: 函数m文件第一行必须以单词function作为引导词,必须遵循如下形式: function <因变量>=<函数名>(<自变量>) m文件的文件名必须是<函数名> .m。 程序中的变量均为局部变量,不保存在工作空间中。 其变量只在函数运行期间有效。

(4). 系统文件——s函数 用于描述系统运动的专用函数,是特殊的 m 文件。 s 函数有3类:  由simulink结构图自动创建  可用c语言程序设计mex文件直接定义  用函数m文件编写s函数一旦创建,即可在框图中使用,也可在文件中调用。

[sys, x0]=sfunction( t, x, u, flag) S函数与函数m文件类似,只是输入、输出变量是限定的。 用户定义的系统 当前输入值 状态初值 系统状态 当前时刻 标志量 当前状态值

(4). 函数句柄 函数句柄是matlab6特有的语言结构,其优点: 方便地实现函数间互相调用 兼容函数加载的所有方式 拓宽子函数包括局部函数的使用范围 提高函数调用的可靠性 减少程序设计中的冗余 提高重复执行的效率 数组、结构数组、细胞型数组结合定义数据

函数句柄的创建和显示 定义函数句柄的定义只需在提示符@后添加相应函数的函数名 f_h=@plot f_h = @plot 函数句柄的内容通过functions显示 functions(f_h)

ans = function: 'plot' type: 'overloaded' file: 'MATLAB built-in function' methods: [1x1 struct]

matlab的函数类型 simple —— 未加载的内部函数、m文件 overloaded ——加载的内部函数、m文件 subfunction —— 子函数 constructor —— matlab类的创建函数 private —— 局部函数

函数句柄的调用和操作 可通过函数feval进行函数句柄的调用 feval(函数句柄) f_h1=@peaks feval(f_h1) f_h=@plot feval(f_h,0:10,0:10)

函数句柄与函数名字符串转换 func2str —— 函数名字符串转换函数句柄 funh=str2func('det') funh = @det str2func —— 函数句柄转换函数名字符串 func2str(funh) ans = det

四、matlab的程序结构 (1).顺序结构 —— 依次顺序执行程序的各条语句 (2).循环结构 —— 被重复执行的一组语句,循环是计算机解决问题的主要手段。 循环语句主要有:  for — end

sum = 153 语法为: for i = 表达式 (表达式为一个向量) 可执行语句 end pdr=1; for k=1:i pdr=pdr*k; sum=sum+pdr; sum = 153

while循环将循环体中的语句循环执行不定次数。 语法为:while 表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值 非0,继续循环;直到表达式值为0,循环停止。

例:用while循环求1~100间整数的和 sum=0; i=1; while i<=100 sum=sum+i; i=i+1; end sum sum = 5050

(3). 分支结构——根据一定条件来执行的各条语 句。 if — else — end语句有3种形式  if 表达式 执行语句 end  if 表达式 ——— 是 语句1 else ———— 否 语句2

 if 表达式1 ——— 多分支 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 · else 语句n end 这种结构实现了一种多路选择,比较复杂。可替代一般高级语言中的switch-case-end语句

关系操作符 >, < ,<=, >=, = =, ~= 等 逻辑操作符 &,| , ~等 在条件表达式中,通常都是由 关系操作符 >, < ,<=, >=, = =, ~= 等 逻辑操作符 &,| , ~等 逻辑函数:isequal —— 若是相等则为真 isempty ——若是空矩阵则为真 isstr —— 若是字符串则为真 例:编写m函数,计算函数值 x (x<1) 2x-1 (1<x<10) 3x-11 (x>=10)

五、matlab程序流的控制 echo 指令— 用来控制m文件在执行过程中是否 显示 echo on — 打开所有命令文件的显示方式 matlab的控制语句同c语言有相似之处, 但没有c 语言复杂、灵活和多变。因而语法比较简单,容易掌握。 echo 指令— 用来控制m文件在执行过程中是否 显示 echo on — 打开所有命令文件的显示方式 echo off — 关闭所有命令文件的显示方式 echo — 在以上两者间切换

echo file on — 打开file函数文件的显示方式 echo file off — 关闭file函数文件的显示方式 echo对于命令文件函数文件有所不同,命令文件用法简单,函数对所有命令起作用;函数文件用法较复杂,具体请help查询。 echo file on — 打开file函数文件的显示方式 echo file off — 关闭file函数文件的显示方式 echo file — 切换file函数文件的显示方式 echo on all — 打开所有函数文件的显示方式 echo off all —关闭所有函数文件的显示方式

input —— 提示用户从键盘输入数值、字符串、表达式。 例:n=input('How many apples= ') How many apples= 5 n = 5 pause —— 暂停,等待用户响应 可令m文件执行暂停,并在继续执行前按任一个键 。

keyboard —— 与input类似,功能更强 keyboard 调用键盘与调用m文件一样,当keyboard在m文件中出现时,它停止文件的执行并控制键盘,用于修改程序。 break —— 中断 break 中断for, while循环语句的执行,在嵌套循环结构中, break进从最里层循环推出。 menu —— 产生一个拥护可选择输入的菜单 格式:k=menu( ‘标题’,‘菜单1’,‘菜单2’ …)

六、文件操作 打开和关闭文件(fopen, fclose) 格式:fid=fopen(‘数据文件’,‘r’) ‘r’ —— 读 matlab文件输入、输出(I/O)函数允许把其它格式的数据文件直接读进matlab,它是以c语言文件I/O函数为基础的。 打开和关闭文件(fopen, fclose) 格式:fid=fopen(‘数据文件’,‘r’) ‘r’ —— 读 ‘w’ —— 写 ‘a’ —— 附加 ‘rt’ —— 读写

文件一旦打开,即可进行读写操作。 sta=fclose(fid) —— 关闭上述打开文件 sta=fclose(all) —— 关闭所有打开的文件 与save,load类似,是matlab专用数据文件读写工具(*.mat)。 2. 读写二进制数据文件 fread, fwrite —— 可读写数据文件,文本文件。 例:fid=fopen(‘user.dat’,’r’) a=fread(fid,50) sta=fclose(fid)

七、应用程序接口 应用程序接口——是matlaab的附加组件。是一个 由相关函数组成的接口函数库,可实现与外部程 序的交互。 MEX文件:是matlab环境下调用C、FORTRAN 语言编写的应用程序模块。 matlab 计算引擎:在使用C、FORTRAN编程时 可调用matlab函数库进行计算。 MAT文件:实现matlab与C、FORTRAN语言程序间的数据交换。

八、matlab编译 matlab编译的原因: 1. 提高运算速度 2. 隐藏特定算法 3. 可产生独立的m文件 matlab编译函数:mcc MCC [-options] fun [fun2 ...] [mexfile1 ...] [mlibfile1 ...]

小 结 本节主要介绍了matlab语言程序设计基础。matlab 编程简单,容易掌握。 通过学习,应能编写简单程序。

结 束 语 本课程基于matlab语言基础,望大家以后进一步学习,方能编写出高质量m文件,以适应高科技的需要。