Matlab流程控制

结构化程序设计:顺序结构、选择结构、循环结构

(使用end关键字来标记语块的结束)

目录

1选择结构

1.1if选择

1.2switch选择

2循环结构

2.1for循环

2.2while循环

3 M文件注释技巧


1选择结构

1.1if选择

①如果判决条件expression为真,则执行命令组:
if  expression

    commands

end

注意:如果判决条件expression为一个空数组,则在MATLAB中默认该条件为假。

②如果可供选择的执行命令组有两组,则采用如下结构:
if expression  %判决条件
    commands1  %判决条件为真,执行命令组1,并结束此结构
else
    commands2  %判决条件为真,执行命令组2,并结束此结构
end

③如果可供选择的执行命令组有n(n>2)组,则采用的结体如下
if expression1  %判决条件
    commands1  %判决条件expression1为真,执行commands1,并结束此结构

elseif expression2 

    commands2  %判决条件expression1为假expression2为真,执行command2,并结束此结构

...
else
    commandsn  %前面所有判决条件均为假,执行commandsn,并结束此结构
end

1.2switch选择

switch语句执行基于变量或表达式值的语句组,关键字case和otherwise用于描述语句组。只执行第一个匹配的情形。用到switch 则必须用end 与之搭配。语法格式如下:
switch switch_expression  %switch_expression为需要进行判决的标量或字符串
    case case_expression1
        statements1  %如果switch_expression1等于case_expressionl,执行statements1

    case case_expression2

        statements2   %如果switch_expression 等于case_expression2,执行statements2

...
    otherwise
        statementsn  %如果switch_expression不等于前面所有值,执行statementsn,并结束此结构
end
注:(1)swtich-case结构的语法格式保证了至少有一组指令组将会被执行。
(2)switch指令之后的表达式switch_expression应为一个标量或一个字符串。当表达式为标量时,比较命令为表达式==检测值i;而当表达式为字符串时,MATLAB将会调用字符串函数strcmp来进行比较,strcmp(表达式,检测值i)。

(3)case 指令之后的检测值不仅可以是一个标量或一个字符串,还可以是一个单元数组。如果检测时是一个单元数组,则 MATLAB 将会把表达式的值与单元数组中的所有元素进行比较。如果单元数组中有某个元素与表达式的值相等,MATLAB 则认为此次比较的结果为真,从而执行与该次检测相对应的命令组。

2循环结构

2.1for循环

for index = values
    statements
end
(1)for指令后面的变量x称为循环变量,而for与end之间的组命令 statements被称为循环体。循环体被重复执行的次数是确定的,该次数由 values 数组的列数来确定因此,在for循环过程中循环变量index被依次赋值为数组 values 的各列每次赋值,循环体都被执行一次。
(2)for循环内部语句末尾的分号隐藏重复的打印。如果statements指令中包含变量,则循环后在命令行窗口直接输人变量r来显示变量r经过循环后的最终结果。

2.2while循环

while expression
    statements
end
(1)在while和end之间的命令组被称为循环体。MATLAB在运行while循环之前,首先检测expression的值,如果其逻辑值为真,则执行命令组statements;命令组statements第一次执行完毕后,继续测expression的逻辑值,如果其逻辑值仍为真,则循环执行命令组statements,直到表达式expression的逻辑值为假时结束

(2)while循环和 for循环的区别在于,while循环结构的循环体被执行的次数是不确定的,而for 循环中循环体的被执行次数是确定的。
(3)一般情况下,表达式的值都是标量值,但是MATLAB中也同样运行表达式为数组的情况。如果表达式数组且数组所有元素的逻辑值均为真时,while 循环才继续执行命令组。
(4)如果 while 指令后的表达式为空数组,那么 MATLAB 默认表达式的值为假,直接结束循环。
(5)if-else-end 分支结构中提到的有关量比较的注事项对 while语句也同样适用。

除了if语句、switch语句、for 语句和while语外,MATLAB还有其他流程控制。

①break:break通常与i语句一起使用,用于在一定条件下跳出循环的执行。在有多重循环时,只能跳出break所在的最里层循环,无法跳出整个循环。
②continue:continue用于结束本次for或while循环,紧接着程序开始执行下一次循环,并不跳出整个循环的执行。continue命令也常常与if一起出现。continue与break的区别是,continue只结束本次循环,而break 则跳出该循环。
③return:return命令可以直接结束程序的运行,并返回到上一层函数。
④cho on/off:执行M文件时,显示/关闭显示文件中的命令。
⑤pause:pause指令用于暂停程序,等待用户按任意键继续,pause(n)则暂停n秒后继续执行。

3 M文件注释技巧

M文件编辑器集成了很多方便实用的功能,其中与注释有关的功能如下:

(1)选中一块区域,按 Ctrl+R组合键可以将此区域变为注释。实现原理是在每一行的行首添加百分号注释符%。

(2)选中一块区域,按 Ctrl+T组合键可以将此区域由注释转为非注释。实现原理是去掉每一行出现的第一个百分号%(如果有的话)。但如果一行中包含多个百分号,则只能去掉第一个。
(3)由“%(”开始,“%)”结束,可以作为段落的注释,相当于C语言中的/*  */

(4)使用cell模式。如果需要对 M文件中的一段进行反复修改,可以考虑使用cell符即定义一个cell模式,相当于将代码复制到命令窗口中运行,在代码上方用两个%后接个空格组合键将直接执行一个 cell。将输人光标放在 cell 中背景颜色会发生改变,在cell中按Ctrl+Enter 组合键将直接执行cell中的代码。

参考书籍:《MATLAB R2015b概率与数理统计》

《MATLAB R2020a入门、精通与实战》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值