专题三:MATLAB程序流程控制

本文详细介绍了MATLAB中的程序流程控制,包括顺序结构中数据输入、输出与暂停,选择结构的if-else和switch,以及循环结构的for和while语句。此外,还探讨了函数文件的定义与调用,以及函数的递归调用和作用域。适合初学者理解基本编程逻辑。
摘要由CSDN通过智能技术生成

专题三:MATLAB程序流程控制

3-1 顺序结构程序

1.程序和程序设计

· 什么叫程序?
程序是用某种计算机能够理解并且能够执行的语言来描述的解决问题的方法和步骤。
· 程序设计的基本步骤:
(1)分析问题,确定求解问题的数学模型或方法
(2)设计算法,画出流程图
(3)选择编程工具,根据算法编写程序
(4)调试程序,分析程序输出结果

2.程序的三种基本结构

· 顺序结构
· 选择结构
· 循环结构

3.脚本文件和函数文件

程序文件扩展名为(.m)也称M文件。
· 脚本文件是可以在命令窗口直接执行的文件,也叫命令文件。
· 函数文件是定义一个函数,不能直接执行,必须以函数调用的方式来调用它。

4.文件的建立

· 用命令按钮创建文件。主页–>创建脚本。
· 用edit命令创建文件。>>edit test
文件的建立

5.顺序结构

顺序执行程序。
(1)数据的输入
A=input(提示信息,选项);

>>A=input(' 请输入变量A的值:');
请输入变量A的值:100

(2)数据的输出
disp(输出项);
(3)程序的暂停
pause(延迟秒数)
若要强制中止的运行可使用Ctrl+C命令。
eg.有一线段AB,A的坐标为(1,1)B的坐标为(4.5,4.5)求AB的长度,一级黄金分隔点C的坐标。
输入输出

3-2 选择结构

1.用if语句实现选择结构

· 单分支if语句;

if 条件		//关系运算或逻辑运算
	语句组		
end			

当条件结果为标量时,非0则条件成立,0表示条件不成立。
当条件结果为矩阵是,矩阵非空且不含0元素则条件成立,否则不成立。
· 双分支if语句;

if 条件		//关系运算或逻辑运算
	语句组1	
else
	语句组2
end			

rem()函数求余数。
· 多分支if语句;

if 条件1		//程序执行完一个分支之后,其余分支不再执行
	语句组1	
elseif 条件2
	语句组2
		...
else
	语句组n
end			

分支结构
lower()函数转化为小写字母
upper()函数转化为大写字母
str2double()函数将字符串转化为数字

2.用switch语句实现选择结构

switch语句
· switch表达式应该是一个结果可以列举的表达式。
· case结果表为switch表达式的举止,当取值有多格式,用单元数据表示。满足其中一个即可
num2cell()函数将数值向量转换为单元数据。
在这里插入图片描述

3-3 循环结构

· 循环结构又称重复结构,是利用计算机运算速度快以及能进行逻辑控制的特点来重复执行某些操作。

1.用for语句实现循环结构

for语句:针对向量的每一个元素执行一次循环体。
退出循环之后,循环变量的值就是向量中最后的元素值。
当向量为空时,循环体一次也不执行。

for 循环变量=表达式1:表达式2:表达式3
	循环体语句
end			//初值,步长,终值。步长为1可省略
for 循环变量=矩阵表达式
	循环体语句
end			//一般格式

· 下面两个for语句引导的循环结构,其循环体执行次数相同吗?
for k=[1,2,3,4] 1个行向量,控制循环4次
for k=[1;2;3;4] 1个列向量,控制循环1次。
eg.计算圆周率pi。
求圆周率
求圆周率2
2pi

2.用while语句实现循环结构

(1)for循环确定循环次数,使用更方便。
while循环判断循环条件来决定是否继续循环。多用于循环次数不确定的情况。

while 条件
	循环体语句
end			//一般格式

(2)break语句和continue语句。
break语句,跳出出循环体,结束整个循环。
continue语句用来结束本次循环。
(3)循环的嵌套
素数筛法
素数筛法

3-4 函数文件的定义与调用

1.函数文件的基本结构

function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句
当有多个形参是,形参之间用逗号分隔,组成形参表。
当输出形参多余一个时,应该用方括号括起来,构成一个输出矩阵。
· 函数文件名通常由函数名再加上扩展名(.m)组成,函数文件名与函数名可以不同。
· renturn语句表示结束函数的执行。
例1. 编写函数文件,求半径为r的圆的面积和周长。
function [s,p]=fcircle(r) s=pi*r*r; p=2*pi*r

2.函数调用

调用格式:
[输出实参表]=函数名[输入实参表]
在调用函数时,函数输入输出参数成为实际参数,简称实参。
例.调用fcircle()函数。
>>[s,p]=fcircle(10) s = 314.1593 p = 62.8319

3.匿名函数

(1)基本格式:
函数句柄变量=@(匿名函数输入参数)匿名函数表达式@是创建函数句柄的运算符
函数句柄变量相当于函数的别名

>>f=@(x,y) x^ 2+y^ 2
f =
@(x,y) x^ 2+y^ 2
>>f(3,4)
ans =
25 

(2)对已知函数进行定义
函数句柄变量=@函数名函数可以为内部函数或自定义函数

 >>h=@sin
 h =
 @sin
 >>h(pi/2)
 ans =
 1

3-5 函数的递归调用

·函数的嵌套调用
一个函数调用了其他函数。
·函数的递归调用
一个函数调用了自身函数。递归 是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
(1)直接递归调用
f函数内部调用f函数本身
(2)间接递归调用
f1函数内部调用f2函数,f2函数内部又调用f1函数。

3-6 函数参数与变量的作用域

1.函数参数的可调性

MATLAB有两个预定变量
nargin --> 记录输入实参个数
nargout --> 记录输出实参个数
参数可调性

2.局部变量与全局变量

· 局部变量是指程序中只在特定过程或函数中可以访问的变量。
· 全局变量作用域是整个MATLAB工作空间,全程有效。所有的函数都可以对他进行修改和存取。
全局变量定义格式:global 变量名
全局变量

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值