、 MATLBA程序的基本设计原则 1、%后面的内容是程序的注解,要善于运用注解使程序更具可读性。 2、养成在主程序开头用 clear指令清除变量的习惯,以消除工作空 间中其他变量对程序运行的影响。但注意在子程序中不要用cear 3、参数值要集中放在程序的开始部分,以便维护。要充分利用 MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之 后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。 4、 input指令可以用来输入一些临时的数据;而对于大量参数,则 通过建立一个存储参数的子程序,在主程序中用子程序的名称来 调用。 5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有 子程序合并在一起来执行全部的操作。 6、充分利用 Debugger来进行程序的调试(设置断点、单步执行 连续执行),并利用其他工具箱或图形用户界面(GUI)的设计 技巧,将设计结果集成到一起。 7、设置好 MATLAB的工作路径,以便程序运行。 C1信号分析基础-1/24 Kunming University of Science& Technology(
C.1 信号分析基础-1/24 Kunming University of Science & Technology 一、MATLBA程序的基本设计原则 1、%后面的内容是程序的注解,要善于运用注解使程序更具可读性。 2、养成在主程序开头用clear指令清除变量的习惯,以消除工作空 间中其他变量对程序运行的影响。但注意在子程序中不要用clear。 3、参数值要集中放在程序的开始部分,以便维护。要充分利用 MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之 后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。 4、input指令可以用来输入一些临时的数据;而对于大量参数,则 通过建立一个存储参数的子程序,在主程序中用子程序的名称来 调用。 5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有 子程序合并在一起来执行全部的操作。 6、充分利用Debugger来进行程序的调试(设置断点、单步执行、 连续执行),并利用其他工具箱或图形用户界面(GUI)的设计 技巧,将设计结果集成到一起。 7、设置好MATLAB的工作路径,以便程序运行
C1信号分析基础2/24 Kunming University of Science& Technology(
C.1 信号分析基础-2/24 Kunming University of Science & Technology
8、 MATLAB程序的基本组成结构 %说明 清除命令:清除 workspace中的变量和图形( clear,cose) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指 MATLAB提供的运算指令或工具箱 提供的专用命令 控制循环 :包含 for if then, switch, while等语句 逐行执行命令 end 绘图命令:将运算结果绘制出来 ■当然更复杂程序还需要调用子程序,或与 simulink以及其他 应用程序结合起来。 C1信号分析基础-3/24 Kunming University of Science& Technology(
C.1 信号分析基础-3/24 Kunming University of Science & Technology 8、MATLAB程序的基本组成结构 %说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱 … … … 提供的专用命令 控制循环 :包含for,if then,switch,while等语句 逐行执行命令 … … … end 绘图命令:将运算结果绘制出来 ◼ 当然更复杂程序还需要调用子程序,或与simulink以及其他 应用程序结合起来
二、M文件的编辑及 MATLAB工作路径的设置 ■进入 MATLAB的 Editor/ Debugger窗口来编辑程序 ■在编辑环境中,文字的不同颜色显示表明文字的不同属 性 绿色:注解;黑色:程序主体;红色:属性值的设定 蓝色:控制流程。 ■在运行程序之前,必须设置好 MATLAB的工作路径,使 得所要运行的程序及运行程序所需要的其他文件处在当 前目录之下,只有这样,才可以使程序得以正常运行。 否则可能导致无法读取某些系统文件或数据,从而程序 无法执行。 ■通过cd指令在命令窗口中可以更改、显示当前工作路径。 ■通过路径浏览器( path browser)也可以进行设置 C1信号分析基础-4/24 Kunming University of Science& Technology(
C.1 信号分析基础-4/24 Kunming University of Science & Technology 二、M文件的编辑及MATLAB工作路径的设置 ◼ 进入MATLAB的Editor/Debugger窗口来编辑程序 ◼ 在编辑环境中,文字的不同颜色显示表明文字的不同属 性。 绿色:注解;黑色:程序主体;红色:属性值的设定; 蓝色:控制流程。 ◼ 在运行程序之前,必须设置好MATLAB的工作路径,使 得所要运行的程序及运行程序所需要的其他文件处在当 前目录之下,只有这样,才可以使程序得以正常运行。 否则可能导致无法读取某些系统文件或数据,从而程序 无法执行。 ◼ 通过cd指令在命令窗口中可以更改、显示当前工作路径。 ◼ 通过路径浏览器(path browser)也可以进行设置
、 MATLABI的程序类型 ■ MATLAB的程序类型有三种,一种是在命令窗口下执 的脚本M文件;另外一种是可以存取的M文件,也 即程序文件;最后一种是函数( function)文件 1、脚本M文件 在命令窗口中输入并执行,它所用的变量都要在工作空间中获 取,不需要输入输出参数的调用,退出 MATLAB后就释放了。 2、程序文件 ◆以m格式进行存取,包含一连串的 MATLAB指令和必要的注 解。需要在工作空间中创建并获取变量,也就是说处理的 数据为命令窗口中的数据,没有输入参数,也不会返回参 数 ◆程序运行时只需在工作空间中键入其名称即可。 c1信号分析基础-5/24 Kunming University of Science& Technology(
C.1 信号分析基础-5/24 Kunming University of Science & Technology 三、MATLAB的程序类型 ◼ MATLAB的程序类型有三种,一种是在命令窗口下执 行的脚本M文件;另外一种是可以存取的M文件,也 即程序文件;最后一种是函数(function)文件。 1、脚本M文件 在命令窗口中输入并执行,它所用的变量都要在工作空间中获 取,不需要输入输出参数的调用,退出MATLAB后就释放了。 2、程序文件 ◆以.m格式进行存取,包含一连串的MATLAB指令和必要的注 解。需要在工作空间中创建并获取变量,也就是说处理的 数据为命令窗口中的数据,没有输入参数,也不会返回参 数。 ◆程序运行时只需在工作空间中键入其名称即可
例:调用m文件 Current Directory- C: Pros A11F11es▲ File Type file Edit View Insert Tools Desktop Window Help FIG-file D舀心只滑回长日图■ 416-1fg 国zy161m M-file E1.m M-file m dobcross asv Editor aut Command window >>zy1_6_1 > c1信号分析基础-6/24 Kunming University of Science& Technology(
C.1 信号分析基础-6/24 Kunming University of Science & Technology 例:调用.m文件
3、函数文件 ◆行并输出结果。角e/命令可以显示它的注释说罗,然后执 样、函数 具有标准的基本结构。 (1)函数定义行(关键字 function) function[out1, out2,]filename(in1, in2 ◆输入和输出(返回)的参数个数分别由 margIn和 nargout两个 MATLAB保留的变量来给出。 (2)第一行帮助行,即H行 以(%)开头,作为 lookfor指令搜索的行 (3)函数体说明及有关注解 ◆以(%)开头,用以说明函数的作用及有关内容 ◆如果不希望显示某段信息,可在它的前面加空行 (4)函数体语句 函数体内使用的除返回和输入变量这些在 function语句中直接引用的 会自动在M的望間中除如巢希全这华年间线量成为 在整个程序中都起作用的变量,则可以将它们设置为全局变 C1信号分析基础7/24 Kunming University of Science& Technology(
C.1 信号分析基础-7/24 Kunming University of Science & Technology 3、函数文件 ◼ 与在命令窗口中输入命令一样,函数接受输入参数,然后执 行并输出结果。用help命令可以显示它的注释说明。 ◼ 具有标准的基本结构。 (1)函数定义行(关键字function) ◆function[out1,out2,..]=filename(in1,in2,..) ◆输入和输出(返回)的参数个数分别由nargin和nargout两个 MATLAB保留的变量来给出。 (2)第一行帮助行,即H1行 ◆以(%)开头,作为lookfor指令搜索的行 (3)函数体说明及有关注解 ◆以(%)开头,用以说明函数的作用及有关内容 ◆如果不希望显示某段信息,可在它的前面加空行 (4)函数体语句 ◆函数体内使用的除返回和输入变量这些在function语句中直接引用的 变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量 会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为 在整个程序中都起作用的变量,则可以将它们设置为全局变量
四、声明子程序(函数程序)变量 1、子程序与主程序之间的数据是通过参数进行传递的, 子程序应用主程序传递来的参数进行计算后,将结 果返回主程序。 例exp_ function , m 2、如果一个函数内的变量没有特别声明,那么这个变 量只在函数内部使用,即为局部变量。如果两个或 多个函数共用一个变量(或者说在子程序中也要用 到主程序中的变量,注意不是参数),那么可以用 goba来将它声明为全局变量。 全局变量的使用可以减少参数传递,合理利用 全局变量可以提高程序执行的效率。 C1信号分析基础-8/24 Kunming University of Science& Technology(
C.1 信号分析基础-8/24 Kunming University of Science & Technology 四、声明子程序(函数程序)变量 1、子程序与主程序之间的数据是通过参数进行传递的, 子程序应用主程序传递来的参数进行计算后,将结 果返回主程序。 例exp_function.m 2、如果一个函数内的变量没有特别声明,那么这个变 量只在函数内部使用,即为局部变量。如果两个或 多个函数共用一个变量(或者说在子程序中也要用 到主程序中的变量,注意不是参数),那么可以用 global来将它声明为全局变量。 全局变量的使用可以减少参数传递,合理利用 全局变量可以提高程序执行的效率
例:调用函数文件(例 exp_function. m) ◆编写函数文件 sumhe m function result=sumhe(a, b) 2 %sumhe (a, b) sum the serial of numbers from a tob 3- result=sum(a: b) ◆编写主程序文件 exp function. m 1%主程序 exp function.m 2-a-input( please input value of a=) 3-b=input( please input value of b=) 4- c=sumhe(a,b) 5%在此例中,主程序 exp function.m设定了两个参数a和b来调用 6%子程序 sumhe,m(为一个函数文件), 7%所以执行主程序时,子程序就会调用主程序传递过来的 8%a和b值进行计算,再将结果返回主程序 C1信号分析基础-9/24 Kunming University of Science& Technology(
C.1 信号分析基础-9/24 Kunming University of Science & Technology 例:调用函数文件(例exp_function.m) ◆编写函数文件sumhe.m ◆编写主程序文件exp_function.m
例:调用函数文件 Current Directory- C:\ Program Files\MATLAB71\work 臼c All Files File Type Size Last ModifiedDescription 已 exp function.mM-fle 1KB20093-416:48:44主程序 exp function. sumhe m M-file 1 KB 2002-1-15 0: 00: 00 sumhe(a, b) sum the serial of numbers from a tob Command window > exp function please input value of a=l please input value of b=5 C1信号分析基础-10/24 Kunming University of Science& Technology(
C.1 信号分析基础-10/24 Kunming University of Science & Technology 例:调用函数文件