目录
二、三种循环中断语句 continue / break / return
* matlab 中其他表示终止 error / quit / exit、中断 input、暂停 pause 的语句
三、如何在出现错误时继续下一次循环 try-catch-end
四、实现 “do while” 循环(while true - if break)
一、循环语句 for / while
需要重复运行的语句在 matlab 中可以用 for 或 while 循环来实现。
for | |
while |
除了根据循环次数或循环条件选择合适的循环语句,为了使循环真正提高效率,提高循环的鲁棒性,并记录循环中的必要信息就尤为重要。
另外需要提醒的是,matlab 是更适合矩阵运算的语言,矩阵计算可行时优先选用矩阵计算。
* 并行运算 parfor
二、三种循环中断语句 continue / break / return
continue | 将控制传递给 for 或 while 循环的下一迭代。它跳过当前迭代的循环体中剩余的任何语句。程序继续从下一迭代执行。 |
break | 终止执行(完全退出) for 或 while 循环。 |
return | 将控制权交还给调用脚本或函数。(退出函数) |
* matlab 中其他表示终止 error / quit / exit、中断 input、暂停 pause 的语句
一篇很好的文章:matlab脚本终止、中断、暂停的几个函数(pause、error、break、quit、exit、return)-错误提示和错误报告 - 一杯明月 - 博客园 (cnblogs.com)
三、如何在出现错误时继续下一次循环 try-catch-end
cd
diary()
diary off; % 如果希望只记录错误信息,创建日志文件后先关闭
tic
for i = 1:length()
try
statement
catch ME
diary on
disp(['Error Message:'])
disp(ME.identifier)
disp(ME.message)
for i = 1:numel(ME.stack)
disp(ME.stack(i))
end
diary off
continue
end
end
toc
四、实现 “do while” 循环(while true - if break)
do-while 循环先执行循环体中的代码,然后判断条件是否满足,根据判断结果决定是否继续循环。
matlab 中没有 do while 循环,但可实现类似功能。
注意:合理设置 break 语句,防止进入死循环。
while true % 或 while 1
% 需要重复的代码
if % 结束循环的判断条件
break
else
% 下一次循环前需执行的内容
end
end
4.1 应用:未知总数图窗的批量操作
比如,批量保存或修改图窗命名等属性,处理完后关闭图窗,然后进行下一个图窗的操作
直到所有图窗被关闭
这时不可用 gcf 来获取当前图窗,因为当图窗不存在时,gcf 会自动新建一个
流程如下:
while true % 或 while 1 % 需要重复的代码
% 如果要获取当前图窗的句柄而不强制创建不存在的图窗
f = get(groot,'CurrentFigure');
if isempty(f) % 结束循环的判断条件
disp('No more figure!')
break
else
oldFigname = f.Name;
newFigname = [oldFigname,'-plus'];
f.Name = newFigname;
% save 相关操作
close f
end
end
五、程序运行日志 diary
cd ''
diary('.txt')
diary on;
% statement
diary off
六、程序用时 tic toc
t1 = tic;
%statement
t2 = tic;
%statement
toc(t2)
toc(t1)