MATLAB-第四章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 MATLAB的编程基础
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 3 循环结构
条件
程序模块 Fra Baidu bibliotek成立
成立
循环结构可以由两种语句结构实现: for语句 while语句
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 3 循环结构 • for语句
for 循环变量=起始值:步长:终止值 循环变量=起始值:步长: 循环体 end
第四章 MATLAB的编程基础
二、其他流程控制语句 2. return语句 * 用于终止当前命令的执行。 用于终止当前命令的执行。 在任何地方遇到return时程序立即终止。 时程序立即终止。 在任何地方遇到 时程序立即终止
第四章 MATLAB的编程基础
二、其他流程控制语句 3 try-catch语句 * * * 用于实现异常处理机制。 用于实现异常处理机制。 需要检测的程序必须放在try语句块中执行。 语句块中执行。 需要检测的程序必须放在 语句块中执行 异常由catch语句捕获并处理。 语句捕获并处理。 异常由 语句捕获并处理
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 2 选择结构 • if语句 if 表达式 程序模块1 程序模块 else 程序模块2 程序模块 end
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 2 选择结构 • if语句
if 表达式 程序模块 end
第四章 MATLAB的编程基础
第四章 MATLAB的编程基础
二、其他流程控制语句
1 break 和 continue语句
* break语句用于立即跳出含该 语句用于立即跳出含该break语句的循环语句。 语句的循环语句。 语句用于立即跳出含该 语句的循环语句 for ii = 1:5; * continue语句用于提前结束当前循环。 continue语句用于提前结束当前循环 语句用于提前结束当前循环。 if ii == 3; break; end fprintf('ii = %d \n', ii); end disp('End of loop!');
第四章 MATLAB的编程基础
二、其他流程控制语句
1 break 和 continue语句
for ii 语句用于立即跳出含该 = 1:5; * break语句用于立即跳出含该 语句用于立即跳出含该break语句的循环语句。 语句的循环语句。 语句的循环语句 * continue语句用于提前结束当前循环。 continue语句用于提前结束当前循环 语句用于提前结束当前循环。 if ii == 3; continue; end fprintf('ii = %d \n', ii); end disp('End of loop!');
例:使用for结构计算1+2+3+…+100 使用for结构计算1+2+3+…+100 for结构计算
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
clear sum=0; for i=1:1:100 sum=sum+i; end sum
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 3 循环结构 • while语句
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 1 顺序结构
程序模块1 程序模块1 模块 程序模块2 程序模块2
只需将程序语句顺序排列即可
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 2 选择结构 成立 不成立
条件
程序模块1 程序模块 程序模块2 程序模块
选择结构由两种语句结构实现: 选择结构由两种语句结构实现: if语句 switch语句
第四章 MATLAB的编程基础
三、函数相关知识
3 变量的作用域 局部变量:在函数中使用的变量, 只能在函数的范围内使用。 全局变量:在命令文件或工作空间定义。 用global定义全局变量。 global Gvar1 Gvar2 Gvar3
第四章 MATLAB的编程基础
三、函数相关知识
例如: 例如: func1.m function y=func1(x) global Gvar; (?) y=x; Gvar=x*10 func2.m function y=func2(x) global Gvar; (?) y=x; Gvar=x*100
一、MATLAB的三种控制结构 if表达式1 2 选择结构 • if语句
程序模块1 elseif 表达式2 程序模块2 … elseif 表达式n 程序模块n else 程序模块n+1 end
书例5-2(page86): ( 书例 ): 将百分制的学生成绩转换为五级制的成绩输出。 将百分制的学生成绩转换为五级制的成绩输出。
3 变量的作用域
例如: 例如: >> global Gvar (!!) func1.m function y=func1(x) global Gvar; y=x; Gvar=x*10 func2.m function y=func2(x) global Gvar; y=x; Gvar=x*100
第四章 MATLAB的编程基础
clear 第四章 MATLAB的编程基础 n=input('输入n= '); if n>=90 r='A' elseif n>=80 r='B' elseif n>=70 r='C' elseif n>=60 r='D' else r='E' End
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 2 选择结构 • switch语句
三、函数相关知识
1 主函数和子函数
mainFunc.m
function y = mainFunc(x) %main Function. y=x*subFunc(x); function u = subFunc(w) % Subfunction u=w/2;
第四章 MATLAB的编程基础
三、函数相关知识
while 表达式 循环体 end
例:使用while循环计算1+2+3+…+100 使用while循环计算1+2+3+…+100 while循环计算
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum
2 私有函数 指存放在private子目录中的函数。 private 注意: 私有函数只能由其父目录中的函数调用; 在函数调用时优先于其他路径上的函数。 调用次序: 子函数->私有函数->搜索路径中的函数。
第四章 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.
第四章 MATLAB的编程基础
• 教学目标
1 MATLAB的三种控制结构。 2 函数相关深入知识 3 m文件调试
• 学习要求
1 熟悉MATLAB的三种控制结构。 2 了解函数相关深入知识 3 学会m文件调试
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
按照程序设计的观点, 任何算法功能都可以通过 程序模块组成的三种基本程序结构的组合来实现: *顺序结构:程序按程序语句或模块在执行流中的 顺序逐个执行。 *选择结构:程序按设定的条件实现程序执行流的 多路分支。 *循环结构:程序按给定的条件重复地执行指定的 程序段或模块。
第四章 MATLAB的编程基础
二、其他流程控制语句 1 . break 和 continue语句 * break语句用于立即跳出含该 语句用于立即跳出含该break语 语句用于立即跳出含该 语 句的循环语句。 句的循环语句。 * continue语句用于提前结束当前循环。 语句用于提前结束当前循环。 语句用于提前结束当前循环
第四章 MATLAB的编程基础
二、其他流程控制语句 3 try-catch语句 书例5-5(page90)try-catch应用实例。
clear; * 用于实现异常处理机制。 用于实现异常处理机制。 N=input('please input N='); A=magic(3); * 需要检测的程序段必须放在 需要检测的程序段必须放在try语句块中 语句块中 try 执行。 执行。 A_N=A(N,N) * 异常由 异常由catch语句捕获并处理。 语句捕获并处理。 语句捕获并处理 catch A_end=A(end,end) lasterr end
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递 sample.m function out = sample(a, b)
fprintf('In Sample,before compute: a = %f, b = %f \n',a,b);
第四章 MATLAB的编程基础
二、其他流程控制语句
3 try-catch语句
* 用于实现异常处理机制。 用于实现异常处理机制。 书例5-5(page90)try-catch应用实例。 * 需要检测的程序段必须放在 需要检测的程序段必须放在try语句块中 语句块中 clear; 。 执行。 执行 N=input('please input N='); * 异常由 异常由catch语句捕获并处理。 语句捕获并处理。 语句捕获并处理 A=magic(3); A_N=A(N,N)
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构 2 选择结构 switch 表达式 • switch语句
case 数值1 程序模块1; case 数值2 程序模块2; …… case 数值n 程序模块n; otherwise 程序模块n+1 end
书例5-2(page86): 书例 ( ): 将百分制的学生成绩转换为五级制的成绩输出。 将百分制的学生成绩转换为五级制的成绩输出。 clear clear n=input('输入 输入n= '); 输入 n=input('输入 输入n= '); 输入 panduan= fix(n/10) switch fix(n/10) switch panduan case {10,9} case {10,9} r='A' r='A' case 8 case 8 r='B' r='B' case 7 case 7 r='C' r='C' case 6 case 6 r='D' r='D' otherwise otherwise r='E' r='E' end end
三、函数相关知识
3 变量的作用域
tips:尽量不使用全局变量! tips
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制:当一个函数调用发生时, 按值传递机制:当一个函数调用发生时, MATLAB 将会复制实参生成一个副本,然后 将会复制实参生成一个副本, 把它们传递给函数。这次复制是非常重要的, 把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数, 因为它意味着虽然函数修改了输入参数,但 它并没有影响到调用者的原值。 它并没有影响到调用者的原值。 防止了因函数修改变量而导致的严重错误。 防止了因函数修改变量而导致的严重错误。
第四章 MATLAB的编程基础
三、函数相关知识
1 主函数和子函数 在一个单个的m文件中可以定义多个函数。如 果多个函数出现在一个文件中,那么第一个定 义的函数为主函数,其下面定义的函数称为子 函数。
注意: 子函数只能被同一文件中的函数调用。 子函数不能够由其他文件中的函数调用。
第四章 MATLAB的编程基础