三、MATLAB程序流程控制

三、MATLAB程序流程控制

3.1 顺序结构程序

最简单,依次执行。

数据的输入:A=input(提示信息,选项) .

数据的输出:disp(输出项).输出不显示名字,更紧凑。

程序的暂停:pause(暂停的秒数). 强行停止:control + c键

3.2用if语句实现选择结构

if 条件
	语句组1
elseif
	语句组2
else
	语句组3
end

条件:如果结果为矩阵,如果矩阵非空且不含0元素,则条件成立。标量0为不成立。

3.3 switch语句

switch 表达式
	case 结果表1
		语句组1
	case 结果表2
		语句组2
	...
	case 结果表m
		语句组m
	otherwise
		语句组n
end

case结果表为switch表达式的取值,当取值有多个时,用单元数据表示。即花括号括起来。

num2cell()把数值向量转为单元数据。

3.4 for循环

for 循环变量=矩阵表达式
	循环体语句
end
//依次将矩阵表达式的各列元素赋给循环变量。

3.5 while循环

while 条件
	循环体语句
end

while适用于循环次数不确定时,for适用于次数确定。

breakcontinue用法和其它语言差不多。

3.6 函数文件的定义与调用

函数定义:
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句

函数调用:
[输出实参表]=函数名(输入实参表)

匿名函数:
函数句柄变量=@(匿名函数输入参数) 匿名函数表达式
函数句柄变量=@函数名

当有多个形参时,形参之间用逗号分隔,组成形参表,形参不能默认赋值。当输出形参多于一个时,应该用方括号括起来,构成一个输出矩阵。

函数文件名通常由函数名加上扩展名.m组成,函数文件名和函数名也可以不相同。调用时用函数文件名。一般建议函数文件名于函数名同名。

return语句表示结束函数的执行,可省略。

匿名函数相当于在命令行中直接建立函数,函数名就是函数句柄变量,可以为后面调用。

3.7 函数的递归调用

(1)直接递归调用,即在函数中调用函数本身。

(2)间接递归调用,即两个函数相互调用。

用起来和其它语言差不多,减少代码量,逻辑更清晰,但牺牲内存和计算效率。

3.8 函数参数与变量的作用域

函数参数的可调性:函数所传递参数数目是可调的,同个函数可完成多个功能。

MATLAB有两个预定义参数:nargin()表示输入实参的个数,nargout()表示输出实参的个数。

局部变量是指在程序中只在特定过程或函数中可以访问的变量。

全局变量是指作用域为整个MATLAB工作空间,即全程有效,所有函数都可以对其进行存取和修改。用global定义,需要在文件和工作空间里声明。

你可能感兴趣的:(三、MATLAB程序流程控制)