Matlab 循环体中clear语句(笔记自用)
先放总结
1. 如果clear语句放在循环体end之前的最后一句,循环指数不会被删除,正常循环;
2. 如果不是end前一句,则循环指数会被清理,但循环仍旧进行,且次数不会变;
3. 内层循环中的clear, 可以清理掉外层的循环指数, 但循环不会停止;
4. 外层循环中的clear, 不会清理掉内层的循环指数。
情况一:clear 不影响循环指数和循环次数
for i =1:3
disp( ['循环指数为:', num2str(i) ] )
clear; % 这种情况 i 是不会被删除
end
% 结果
% 循环指数为:1
% 循环指数为:2
% 循环指数为:3
情况二:clear 删除循环指数,但不影响循环次数
for i =1:3
clear; % 这种情况 i 会被删除 ! 但依然有3次结果!但此时循环指数已经不存在了!
disp( ['循环指数为:', num2str(i) ] )
end
% 结果
% 循环指数为:0+1i
% 循环指数为:0+1i
% 循环指数为:0+1i
情况三:内层循环clear 清理了外层循环指数,但不影响循环次数
for i = 1:3
disp( ['外 循环为:', num2str(i) ] )
disp('------------------------------------------------')
for j = 1:2
disp( ['内 循环为:', num2str(j) ] )
clear; % 内循环清理了外层 i 值
end
disp('------------------------------------------------')
disp( ['外 循环为:', num2str(i) ] )
end
% 外 循环为:1
% ------------------------------------------------
% 内 循环为:1
% 内 循环为:2
% ------------------------------------------------
% 外 循环为:0+1i %只出现了一次,剩下的被清理了!
% 外 循环为:2
% ------------------------------------------------
% 内 循环为:1
% 内 循环为:2
% ------------------------------------------------
% 外 循环为:0+1i
% 外 循环为:3
% ------------------------------------------------
% 内 循环为:1
% 内 循环为:2
% ------------------------------------------------
% 外 循环为:0+1i
情况四:外层循环clear 不影响内层循环指数,也不影响循环次数
for i = 1:3
disp( ['外 循环为:', num2str(i) ] )
disp('------------------------------------------------')
for j = 1:2
disp( ['内 循环为:', num2str(j) ] )
end
disp('------------------------------------------------')
disp( ['外 循环为:', num2str(i) ] )
clear; % 内循环不会清理了内层 j
end
% 结果
% 外 循环为:1
% ------------------------------------------------
% 内 循环为:1
% 内 循环为:2
% ------------------------------------------------
% 外 循环为:1
% 外 循环为:2
% ------------------------------------------------
% 内 循环为:1
% 内 循环为:2
% ------------------------------------------------
% 外 循环为:2
% 外 循环为:3
% ------------------------------------------------
% 内 循环为:1
% 内 循环为:2
% ------------------------------------------------
% 外 循环为:3