计算机仿真技术(第4章 MATLAB的编程基础)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、其他流程控制语句
其他流程控制语句:return语句
用于终止当前命令的执行。在任何地方遇到return 时程序立即终止。
其他流程控制语句:try-catch语句
用于实现异常处理机制。
需要检测的程序必须放在try语句块中执行。
异常由catch语句捕获并处理。
二、其他流程控制语句
一、MATLAB的三种控制结构
例题:将百分制的学生成绩转换为五 级制的成绩输出。
clear 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提供了两对永久变量:nargin和varargin:
用于检查被调用函数的输入参数数目,检查函数体内的 被调用时的输入参数的值; nargout和varargout:用于 检查被调用函数的输出参数的个数和每个输出参数的值。
第四章 MATLAB的编程基础
第四章 MATLAB的编程基础
教学目标
MATLAB的三种控制结构。 函数相关深入知识
m文件调试
学习要求
熟悉MATLAB的三种控制结构。 了解函数相关深入知识 学会m文件调试
一、MATLAB的三种控制结构
MATLAB的三种控制结构
按照程序设计的观点, 任何算法功能都可以通过程序模块 组成的三种基本程序结构的组合来实现: 顺序结构:按程序语句或模块在执行流中顺序逐个执行。
选择结构:程序按设定的条件实现程序执行流的多路分
支。 循环结构:按给定条件重复地执行指定的程序段或模块。
一、MATLAB的三种控制结构
顺序结构
只需将程序语句顺序排列即可
程序模块1 程序模块2
一、MATLAB的三种控制结构
选择结构
根据条件选择性执行。 选择结构由两种语句结构实现:if语句和switch语
三、函数相关知识
函数的参数传递:按值传递实例
funcCanshu.m function [y]=funcCanshu(x) if nargin==0 y=0; end if nargin==1 y=1; end
程序设计的基本步骤
程序设计的基本步骤
1.清晰地陈述出你要解决的问题 2.确定程序所需的输入量和程序产生的输出量。
例:使用for结构计算1+2+3+…+100 clear sum=0; for i=1:1:100 sum=sum+i; end sum
一、MATLAB的三种控制结构
循环结构:while语句
根据条件循环性执行。 while语句格式:
while 表达式
循环体 end 例:使用for结构计算1+2+3+…+100 clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum
全局变量:在命令文件或工作空间定义。用global
定义全局变量。尽量不使用全局变量! 格式:global
func1.m function y=func1(x) global Gvar; Y=x; Gvar=x*10
Gvar1 Gvar2 Gvar3
func2.m function y=func2(x) global Gvar; Y=x; Gvar=x*100
函数的参数传递:按值传递实例
sample.m function out = sample(a, b) a = b(1) + 2*a; b = a .* b; out = a + b(1);
fprintf('In Sample,before compute: a = %f, b = %f %f\n',a,b);
fprintf('In Sample,after compute: a = %f, b = %f %f \n',a,b);
以下是命令行用来调用sample函数: a = 2; b = [6 4]; fprintf('Before sample: a = %f, b = %f %f\n', a, b); out = sample(a, b); fprintf('After sample: a = %f, b = %f %f\n',a,b); fprintf('After sample: out = %f \n', out);
一、MATLAB的三种控制结构
选择结构:switch语句
根据条件选择性执行。 If语句格式:
switch 表达式 case 数值1 程序模块1; case 数值2 程序模块2; …… case 数值n 程序模块n; otherwise 程序模块n+1 end
一、MATLAB的三种控制结构
实例:try-catch语句
两段程序分别输入2,4,比较
clear; N=input('please input N='); A=magic(3); A_N=A(N,N)
clear; N=input('please input N='); A=magic(3); try A_N=A(N,N); catch A_end=A(end,end) end
三、函数相关知识
函数相关知识:函数的参数传递
按值传递机制:当一个函数调用发生时,MATLAB 将 会复制实参生成一个副本,然后把它们传递给函数。这
次复制是非常重要的,因为它意味着虽然函数修改了输
入参数,但它并没有影响到调用者的原值。 按值传递防止了因函数修改变量而导致的严重错误。
三、函数相关知识
3.为你的程序设计算法
4.将算法转化为Matlab语句。 5.调试Matlab程序 6.运行Matlab程序
本章小结
本章小结
三种控制结构。 Break和 Continue;return;try-catch;
主函数和子函数;私有函数;变量的作用域。函数参数
传递;函数参数的可调性。
思考
思考:事先无法明确要循环多少次,用哪个语 句合适?
While语句,为什么?
二、其他流程控制语句
其他流程控制语句:break 和 continue语句
break语句用于立即跳出含该break语句的循环语句。 continue语句用于提前结束当前循环。
for ii = 1:5; for ii = 1:5; if ii == 3; if ii == 3; continue; break; end end fprintf('ii = %d \n', ii); fprintf('ii = %d \n', ii); end end disp('End of loop!'); disp('End of loop!');
例:将百分制的学生成绩转换为五级制的成绩输出。
clear 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 clear n=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='E' end
一、MATLAB的三种控制结构
循环结构
根据条件循环性执行。 循环结构由两种语句结构实现:for语句和while语句
条件
程序模块wenku.baidu.com
不成立
成立
一、MATLAB的三种控制结构
循环结构:for语句
For语句格式:根据条件循环性执行。 for 循环变量=起始值:步长:终止值
循环体
end
三、函数相关知识
函数相关知识:private私有函数
指存放在private子目录中的函数。 私有函数只能由其父目录中的函数调用;在函数调
用时优先于其他路径上的函数。
调用次序: 子函数->私有函数->搜索路径中的函数。
三、函数相关知识
函数相关知识:变量的作用域
局部变量:在函数中使用的变量,只能在函数的范 围内使用。
三、函数相关知识
函数相关知识:主函数和子函数
在单个的m文件中我们可以定义多个函数。如果多个 函数出现在一个文件中,那么第一个定义的函数为主函
数,其下面定义的的函数称为子函数。
子函数只能被同一文件中的函数调用。 子函数不能够由其他文件中的函数调用。
function y = mainFunc(x) %main Function. y=x*subFunc(x); function u = subFunc(w) % Subfunction u=w/2;

条件关系:==,~=,>, >=, <, <=
成立 程序模块1
条件
不成立 程序模块2
一、MATLAB的三种控制结构
选择结构:if语句
根据条件选择性执行。If语句格式:
if 表达式1
程序模块1
elseif 表达式2 程序模块2
elseif 表达式n
程序模块n else
程序模块n+1
end
本章结束
相关文档
最新文档