过冷水给大家介绍了matlab编程中三个最基本也是最重要的三个流程控制方式,即:顺序执行(最基础),循环执行(for...end, while...end),选择执行(if...end, switch...case...end)。灵活地运用后面两种控制能高效地帮助解决很多实际问题。除了这三种最基本的方式, 再给大家介绍几种。
continue和break
continue和break经常在matlab的循环执行中使用,而各自具有不同的作用。
continue语句:结束本次循环,转入下一次循环执行,不会跳出本层循环;
break语句:结束本层循环,转入外层循环执行。若无外层循环,则按顺序执行循环下方语句。
pause
pause,顾名思义就是暂停的意思。其作用是暂停当前程序的执行,延迟特定时间或等待按键之后才会继续执行程序。
其调用格式如下:"pause(n);" 其中n为暂停的时间,单位为秒,或者直接"pause;",该方式需要有按键输入程序才会继续执行。
pause函数非常有用。例如,想显示plot函数的绘图过程,由于一般情况绘制过程几乎是瞬间完成,根本没法看清楚,这里加个pause(x), x为欲暂停时间。具体使用方法见本公众号文章“matlab流程控制(一)”,在微信聊天输入“007”即可快速查看。
return
return,即返回的意思,一般放在函数的结尾,return具有强制结束程序运行作用。与for循环连用可以达到while循环的效果,当然没有这个必要。MATLAB调用函数正在运行时,使用return语句可以强制结束调用,或在满足某条件时强制退出此函数的运行,并返回主调函数和键盘。大家可以试一下下面的示例,得g的结果等于5,而不是11.
x = 0:10; g = 0; for k = x if k >= 5 return; end g = g 1; end
try...catch...end
try-catch-end本质上是一种选择执行,但这个有别于if和switch,它是matlab提供的一种代码执行过程中错误捕获机制。一个优秀程序不仅要能解决当下的问题,还能有延展性,考虑程序运行过程可能会遇到的各种情况,而try-catch-end就提供了一种选择。其调用格式如下:
try
语句a;
....
catch
语句b;
...
end
以上格式的意思是,如果try与catch之间的代码正确则执行a段代码,反之则执行b段代码。
clc;clear all A = ones(2,3); % 生成2*3的1矩阵 B = ones(2,3); % 生成2*3的1矩阵 try Re = A*B; % 2*3的矩阵不能2*3的矩阵叉乘 disp('执行A段'); catch % 这里采用点乘 Re = A.*B; disp('执行B段'); end
本期过冷水进一步完善了流程控制过程中的方法,让流程控制更加丰富。
原创文章,作者过冷水,未经授权,禁止私自转载,转载请联系作者,如果您希望加入Matlab仿真秀官方交流群和资料下载可加群:927550334