MATLAB的编程基础.ppt

上传人:小飞机 文档编号:5439203 上传时间:2023-07-07 格式:PPT 页数:46 大小:255.49KB
返回 下载 相关 举报
MATLAB的编程基础.ppt_第1页
第1页 / 共46页
MATLAB的编程基础.ppt_第2页
第2页 / 共46页
MATLAB的编程基础.ppt_第3页
第3页 / 共46页
MATLAB的编程基础.ppt_第4页
第4页 / 共46页
MATLAB的编程基础.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《MATLAB的编程基础.ppt》由会员分享,可在线阅读,更多相关《MATLAB的编程基础.ppt(46页珍藏版)》请在三一办公上搜索。

1、第四章 MATLAB的编程基础,教学目标 1 MATLAB的三种控制结构。2 函数相关深入知识 3 m文件调试学习要求 1 熟悉MATLAB的三种控制结构。2 了解函数相关深入知识 3 学会m文件调试,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构,按照程序设计的观点,任何算法功能都可以通过程序模块组成的三种基本程序结构的组合来实现:*顺序结构:程序按程序语句或模块在执行流中的 顺序逐个执行。*选择结构:程序按设定的条件实现程序执行流的 多路分支。*循环结构:程序按给定的条件重复地执行指定的 程序段或模块。,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构顺序结构

2、,只需将程序语句顺序排列即可,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构2 选择结构,选择结构由两种语句结构实现:if语句switch语句,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构2 选择结构,if语句,if 表达式 程序模块1else 程序模块2end,第四章 MATLAB的编程基础,if 表达式 程序模块 end,一、MATLAB的三种控制结构2 选择结构,if语句,第四章 MATLAB的编程基础,if表达式1 程序模块1 elseif 表达式2 程序模块2 elseif 表达式n 程序模块n else 程序模块n+1 end,一、MATLAB的三

3、种控制结构2 选择结构,if语句,第四章 MATLAB的编程基础,书例5-2(page86):将百分制的学生成绩转换为五级制的成绩输出。clearn=input(输入n=);if n=90 r=Aelseif n=80 r=Belseif n=70 r=Celseif n=60 r=Delse r=EEnd,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构2 选择结构,switch语句,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构2 选择结构,switch语句,switch 表达式 case 数值1 程序模块1;case 数值2 程序模块2;case 数值n 程

4、序模块n;otherwise 程序模块n+1end,第四章 MATLAB的编程基础,书例5-2(page86):将百分制的学生成绩转换为五级制的成绩输出。clearn=input(输入n=);panduan=fix(n/10)switch panduan case 10,9 r=A case 8 r=B case 7 r=C case 6 r=D otherwise r=Eend,clearn=input(输入n=);switch fix(n/10)case 10,9 r=A case 8 r=B case 7 r=C case 6 r=D otherwise r=Eend,第四章 MATLA

5、B的编程基础,一、MATLAB的三种控制结构3 循环结构,循环结构可以由两种语句结构实现:for语句while语句,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构3 循环结构,for语句,for 循环变量起始值:步长:终止值循环体end,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构,例:使用for结构计算1+2+3+100clearsum=0;for i=1:1:100 sum=sum+i;endsum,第四章 MATLAB的编程基础,一、MATLAB的三种控制结构3 循环结构,while语句,while 表达式 循环体 end,第四章 MATLAB的编程基础

6、,一、MATLAB的三种控制结构,例:使用while循环计算1+2+3+100clearsum=0;i=0;while i100i=i+1;sum=sum+i;endsum,第四章 MATLAB的编程基础,二、其他流程控制语句1.break 和 continue语句*break语句用于立即跳出含该break语句的循环语句。*continue语句用于提前结束当前循环。,第四章 MATLAB的编程基础,二、其他流程控制语句1 break 和 continue语句*break语句用于立即跳出含该break语句的循环语句。*continue语句用于提前结束当前循环。,for ii=1:5;if ii=

7、3;break;end fprintf(ii=%d n,ii);end disp(End of loop!);,第四章 MATLAB的编程基础,二、其他流程控制语句1 break 和 continue语句*break语句用于立即跳出含该break语句的循环语句。*continue语句用于提前结束当前循环。,for ii=1:5;if ii=3;continue;end fprintf(ii=%d n,ii);end disp(End of loop!);,第四章 MATLAB的编程基础,二、其他流程控制语句2.return语句*用于终止当前命令的执行。在任何地方遇到return时程序立即终止。

8、,第四章 MATLAB的编程基础,二、其他流程控制语句3 try-catch语句*用于实现异常处理机制。*需要检测的程序必须放在try语句块中执行。*异常由catch语句捕获并处理。,第四章 MATLAB的编程基础,二、其他流程控制语句3 try-catch语句*用于实现异常处理机制。*需要检测的程序段必须放在try语句块中执行。*异常由catch语句捕获并处理。,书例5-5(page90)try-catch应用实例。clear;N=input(please input N=);A=magic(3);A_N=A(N,N),第四章 MATLAB的编程基础,二、其他流程控制语句3 try-catc

9、h语句*用于实现异常处理机制。*需要检测的程序段必须放在try语句块中执行。*异常由catch语句捕获并处理。,书例5-5(page90)try-catch应用实例。clear;N=input(please input N=);A=magic(3);try A_N=A(N,N)catch A_end=A(end,end)lasterrend,第四章 MATLAB的编程基础,三、函数相关知识 主函数和子函数 在一个单个的m文件中可以定义多个函数。如果多个函数出现在一个文件中,那么第一个定义的函数为主函数,其下面定义的函数称为子函数。注意:子函数只能被同一文件中的函数调用。子函数不能够由其他文件中

10、的函数调用。,第四章 MATLAB的编程基础,三、函数相关知识 主函数和子函数,mainFunc.mfunction y=mainFunc(x)%main Function.y=x*subFunc(x);function u=subFunc(w)%Subfunction u=w/2;,第四章 MATLAB的编程基础,三、函数相关知识私有函数 具有限制性访问权限的函数。注意:对应的函数文件保存在名为“private”的文件夹下 编写上和普通的的函数文件没有什么区别。只能被private目录的直接父目录下的命令文件或函数文件的主函数调用。在函数调用时优先于其他路径上的函数。调用次序:子函数-私有函

11、数-搜索路径中的函数。,第四章 MATLAB的编程基础,三、函数相关知识2 私有函数,Private Directories You can create your own private directories simply by creating subdirectories called private using the standard procedures for creating directories or folders on your computer.Do not place these private directories on your path.,第四章 MATL

12、AB的编程基础,三、函数相关知识3 变量的作用域 局部变量:在函数中使用的变量,只能在函数的范围内使用。全局变量:在命令文件或工作空间定义。用global定义全局变量。global Gvar1 Gvar2 Gvar3,第四章 MATLAB的编程基础,三、函数相关知识3 变量的作用域,例如:func1.m function y=func1(x)global Gvar;(?)y=x;Gvar=x*10func2.mfunction y=func2(x)global Gvar;(?)y=x;Gvar=x*100,例如:global Gvar(!)func1.m function y=func1(x)

13、global Gvar;y=x;Gvar=x*10func2.mfunction y=func2(x)global Gvar;y=x;Gvar=x*100,第四章 MATLAB的编程基础,三、函数相关知识3 变量的作用域 tips:尽量不使用全局变量!,第四章 MATLAB的编程基础,三、函数相关知识4 函数的参数传递 按值传递机制,第四章 MATLAB的编程基础,三、函数相关知识4 函数的参数传递 按值传递机制:当一个函数调用发生时,MATLAB 将会复制实参生成一个副本,然后把它们传递给函数。这次复制是非常重要的,因为它意味着虽然函数修改了输入参数,但它并没有影响到调用者的原值。防止了因函

14、数修改变量而导致的严重错误。,第四章 MATLAB的编程基础,三、函数相关知识4 函数的参数传递,sample.m function out=sample(a,b)fprintf(In Sample,before compute:a=%f,b=%f n,a,b);a=b+2*a;b=a*b;out=a+b;fprintf(In Sample,after compute:a=%f,b=%fn,a,b);,第四章 MATLAB的编程基础,三、函数相关知识4 函数的参数传递,以下是命令行用来调用sample函数:a=2;b=6;fprintf(Before sample:a=%f,b=%fn,a,b

15、);out=sample(a,b);fprintf(After sample:a=%f,b=%fn,a,b);fprintf(After sample:out=%f n,out);,第四章 MATLAB的编程基础,三、函数相关知识5 函数的参数可调性 MATLAB在函数调用上有一个特色,函数所传递参数数目的可调性,即 传递的参数的个数可以任意。,第四章 MATLAB的编程基础,三、函数相关知识5 函数的参数可调性 MATLAB提供了两对永久变量:nargin和varargin:用于检查被调用函数的输入参数数目,检查函数体内的被调用时的输入参数的值。nargout和varargout:用于检查被

16、调用函数的输出参数的个数和每个输出参数的值。,第四章 MATLAB的编程基础,三、函数相关知识5 函数的参数可调性,funcCanshu.m function y=funcCanshu(x)if nargin=0 y=0;end if nargin=1 y=1;end,第四章 MATLAB的编程基础,三、函数相关知识5 M文件的调试实例,调试:funcCanshu.m function y=funcCanshu(x)if nargin=0 y=0;end if nargin=1 y=1;end,第四章 MATLAB的编程基础,一个实例:画圆。Circle.mcircle(5)circle(4,

17、r)s1=circle(6)s2=circle(8,y),第四章 MATLAB的编程基础,编程基础小结:三种控制结构。Break和 Continue;return;try-catch;主函数和子函数;私有函数;变量的作用域。函数参数传递;函数参数的可调性。,第四章 MATLAB的编程基础,第四章 MATLAB的编程基础,课间提问,提问1:如何设置MATLAB初始路径为自定义的路径?,课间提问,提问2:精度计算的问题。看如下的代码,分析:x=0;for n=1:82 x=x+0.01 end x=0.82,x=0;for n=1:82 x=x+1 end x=82,课后任务,1 熟练掌握MATLAB的三种控制结构。2 了解函数相关深入知识 3 学会m文件的简单调试步骤,特别声明,部分班级刚开始学线性代数。因此对课程作了调整。矩阵部分知识在符号计算知识后。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号