《三 程序设计.ppt》由会员分享,可在线阅读,更多相关《三 程序设计.ppt(47页珍藏版)》请在金锄头文库上搜索。
1、数值图形可视化 南京林业大学第三章 MATLAB 程序设计 教学目标 教学重点Date1第三章 MATLAB 程序设计数值图形可视化 南京林业大学教学重点 M文件概念 控制流语言Date2第三章 MATLAB 程序设计数值图形可视化 南京林业大学3.1 M文本编辑器的基本知识 matlab有两种常用的工作方式:一种是直接交 互的指令行操作方式;另一种是M文件的编程 工作方式。 M文件有两种形式:脚本式和函数式。两种文 件的扩展名相同,均为“.m”。Date3第三章 MATLAB 程序设计数值图形可视化 南京林业大学(1)脚本式M文件 用户可以将需要重复输入的所有命令按顺序放到一个扩 展名为m的
2、文本文件下,每次运行时只要输入该M文件 的文件名即可。 在“命令”窗口中直接输入edit命令,或单击常用工具栏 上的“新建”图标,可以打开一个新的M文件编辑窗口。Date4第三章 MATLAB 程序设计数值图形可视化 南京林业大学(1)脚本式M文件举例例:编制一个脚本式M文件,求当x=10时,多 项式x2+5x+lgx之值。Date5第三章 MATLAB 程序设计数值图形可视化 南京林业大学(1)脚本式M文件举例解答: x=10; y=x2+5*x+log10(x)Date6第三章 MATLAB 程序设计数值图形可视化 南京林业大学(1)脚本式M 文件小结 用户自己创建的M文件的文件名要避免与
3、MATLAB 的内 置函数和工具箱中的函数重名,以免发生内置函数被替 换的情况。 运行M文件时,一定要保证所调用的M文件在当前路径 下,否则,无法找到该M文件。 如果需要编辑某个已经存在的M文件,可以使用edit mfiles命令形式,其中mfiles为用户需要编辑的文件名 。 脚本式M文件生成的变量均为全局变量。这些变量一旦 生成,就一直保存在内存中,除非运用clear命令将它 们清除。Date7第三章 MATLAB 程序设计数值图形可视化 南京林业大学(2)函数式M文件 函数式M文件一般都要自带参数,并且有返回 结果。 函数式M文件的第一行都是以function开始, 说明此文件是一个函数
4、。 函数式M文件名和出现在文件第一行的函数名 必须相同。 函数式M文件的变量都不是全局变量,仅在函 数运行期间有效。Date8第三章 MATLAB 程序设计数值图形可视化 南京林业大学函数式M文件举例 例:编制一个函数式M文件,求自然 数1到n相加之和。Date9第三章 MATLAB 程序设计数值图形可视化 南京林业大学函数式M文件举例 解答: function qiuhe(n) sum=0; for m=1:1:nsum=sum+m; end sum此M文件编辑好后,必须以 “qiuhe”为文件名进行保存。Date10第三章 MATLAB 程序设计数值图形可视化 南京林业大学函数式M文件举例
5、 思考:在前面M函数基础上,试计算 自然数1到10相加之和。另外,在命令窗口中输入qiuhe(10)可以对M文件进行调用。Date11第三章 MATLAB 程序设计数值图形可视化 南京林业大学3.2 控制流 最简单的程序控制就是顺序结构,用户依 次输入命令语句即可。 MATLAB 语言还提供了4种高级的控制结 构。它们是:if-else-end结构、switch- case-otherwise-end结构、for循环和 while循环。 Date12第三章 MATLAB 程序设计数值图形可视化 南京林业大学(1)顺序结构 顺序结构是最简单的程序结构,用户在编 写好程序之后,系统将按照程序的物理
6、位 置顺次执行,实现的功能比较有限。 例:编制M文件如下 a=1; b=2; c=3; s1=a+b s2=s1+c s3=s2/s2Date13第三章 MATLAB 程序设计数值图形可视化 南京林业大学(2)ifend语句 只有一种选择时的情况 if 表达式执行语句 end 当表达式为真时,就执行if和end之间的执行语句;否 则不予执行。Date14第三章 MATLAB 程序设计数值图形可视化 南京林业大学(2)ifend语句例:编制M文件如下 x=5; y=5; if x2 y=100 endDate15第三章 MATLAB 程序设计数值图形可视化 南京林业大学ifend语句 有两种选择
7、时的情况 if 表达式 执行语句1 else执行语句2 end 如果表达式为真,则执行语句1; 如果表达式为假,则执行语句2。Date16第三章 MATLAB 程序设计数值图形可视化 南京林业大学(2)ifend语句例:编制M文件如下 x=5;y=5; if x10 y=100 else y=1000 end Date17第三章 MATLAB 程序设计数值图形可视化 南京林业大学ifend语句 有3种或3种以上选择时的情况 if 表达式1表达式1为真时的执行语句1 elseif表达式2表达式2为真时的执行语句2 elseif表达式3表达式3为真时的执行语句3 elseif else所有的表达式
8、都为假时的执行语句 endDate18第三章 MATLAB 程序设计数值图形可视化 南京林业大学(2)ifend语句例:编制M文件如下 x=5;y=21;if x10 y=100 elseif x20 y=1000 else y=10 end Date19第三章 MATLAB 程序设计数值图形可视化 南京林业大学举 例 例:编制函数式M文件:输入整数a 和b,若大于100,则输出百位以上 的数字,否则输出两数之和。 Date20第三章 MATLAB 程序设计数值图形可视化 南京林业大学举 例 解答: function liti2(a,b) if a100 a end if b100 b end
9、 if aa=2;lower1(a)Date23第三章 MATLAB 程序设计数值图形可视化 南京林业大学(5) for循环语句 for语句是一种循环语句,可以让用户容易实现循环操作,从而可以从容地应付大规模的循环语句。 for i =表达式,执行语句,执行语句 end表达式是一个向量,其形式可以是m:s:n,也可以m:n(s为步长,默认值 为1)。还可以直接将一个向量赋值给i。i还可以是字符串、字符串矩阵等。Date24第三章 MATLAB 程序设计数值图形可视化 南京林业大学(5) for循环语句例:编制M文件如下for a=1:1:10x(a)=a2 end另判断以下程序结果及循环次数
10、: for a=1:1:4x(a)=a2 end运行结果?Date25第三章 MATLAB 程序设计数值图形可视化 南京林业大学(5) for循环语句 for循环另一个特点是嵌套使用。它可以多次嵌套for循 环或是嵌套其它结构形式。如: for a=1:2 for b=1:2 a(a,b)=1/(a+b-1) end endDate26第三章 MATLAB 程序设计数值图形可视化 南京林业大学(6)while循环语句 while表达式执行语句 end 若表达式中条件成立,则执行执行语句;若条件表达式 中条件不成立,则跳出循环向下继续执行。如: s=0;n=1; while n=0 y=-3*x2+5 elsey=3*x2+5 end继续输入:jisuan(-5),jisuan(-10)Date29第三章 MATLAB 程序设计数值图形可视化 南京林业大学(7) 人机交互命令 终止命令break 等待用户反应命令pause 用户输入提示命令input 请求键盘输入命令keyboard Date30第三章 MATLAB 程序设计数值图形可视化