【 MATLAB 】程序流程控制语句格式简记
目录
switch - case - otherwise - end 结构
下面主要记录matlab中的程序流程控制格式:
if-else-end 结构
1.
-
if expr %expr为表达式,如果成立,则执行到end为止的所有commands,否则不执行
-
-
commands;
-
-
end
2.
-
if expr1
-
-
commands1;
-
-
elseif expr2
-
-
commands2;
-
-
else
-
-
commands3;
-
-
end
根据程序分支的多少,elseif的个数可以有0个到多个。
switch - case - otherwise - end 结构
-
switch expr
-
case value1
-
command1;
-
case value2
-
command2;
-
...
-
case valuek
-
commandk;
-
otherwise
-
commands;
-
end
otherwise建议始终保留,commands可以为空语句;
for 循环
-
for ix = array
-
commands;
-
end
在命令窗口中输入以下代码,体会for循环的用法。
-
-
for i = 1:10
-
a = i;
-
end
-
clear;
-
clc;
-
for i = (1:10)'
-
a = i;
-
end
-
for i = [1 2 3;4 5 6;7 8 9]
-
a = i;
-
end
从运行结果可以看出,for循环在MATLAB中和其他语言中还是有些差别的。MATLAB的for循环的机制是遍历array的列,无论这个array是向量还是矩阵。如果array是行向量,那么for就遍历它的每个元素;如果是列向量,for循环就循环一次,即遍历列向量本身;如果array是矩阵,那么for循环就遍历它的每一个列,循环n次,n是array的列数。此外,如果array是三维矩阵,那么for循环先遍历第一页的所有列,之后是第二页的所有列,等等。
while 循环
-
while expr //expr为真执行commands,否则退出循环
-
commands;
-
end
try - catch 结构
-
try
-
commands1;
-
catch ME
-
commands2;
-
end
该结构意义是执行commands1,如果不发生错误,则不用执行commands2;如果执行commands1的过程中发生了错误,那么commands2就会被执行,同时ME记录了发生错误的相关信息。
其他中断、暂停语句
MATLAB在循环体内还可以利用 continue 语句跳出位于它之后的循环体的其他指令,而执行循环的下一次迭代:
-
clear;
-
clc;
-
for ix = 1:5
-
if ix == 3
-
continue
-
end
-
disp( ['ix =', num2str(ix)] )
-
end
MATLAB还可以用break语句结束包含该指令的while或for循环体,用于跳出循环。
例如:
-
clc
-
clear
-
jx = 3;
-
for i = 1:3
-
if i == 2
-
disp( ['i = ', num2str(i)] );
-
break
-
disp( ['jx = ', num2str(jx)]);
-
end
-
end
当i = 2时,执行if - end结构中的内容,可见jx = 3,没有显示,因为程序见到break就跳出了循环。
最后一个:
pause(n)可以使程序暂停n秒后再继续执行;pause指令使程序暂停执行,等待用户按任意键继续。
最后,我在《MATLAB高效编程技巧与应用》这本书时,对于break指令,书中说:break语句还可以在if -end,switch - case,try - catch结构中使用,还给出了如下的例子:
-
clc
-
clear
-
jx = 3;
-
ix = 6;
-
if jx == 3
-
disp( ['i = ', num2str(i)] );
-
break
-
disp( ['jx = ', num2str(jx)]);
-
end
可执行的时候,出现如下:
可见,这种说法是错误的,这里在这里指出来。
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/82831593
- 点赞
- 收藏
- 关注作者
评论(0)