【发布时间】:2016-03-01 16:38:45
【问题描述】:
我写了一个 matlab 代码,想在找到矩阵中的第一个代码后终止代码。但是,它一直持续到最后一个,然后中断工作。问题是什么?
% The code is as follows:
for i=1:n
for j=1:m
if (bw(i,j)==1) % element with value one
p1(1)=i;p1(2)=j;
% fprintf('value of a: %d\n', i ,j)
sprintf('Found first one in the loop!!')
break; % terminate
end
end
end
【问题讨论】:
-
break退出内部for,但不退出外部。无论如何,这可能可以在没有循环的情况下完成。请描述您想要实现的目标,例如输入和输出 -
将此代码放在一个适当命名的函数中,并使用
return而不是breaking,因为就像@LuisMendo 所说,break退出了内部for,而不是两者。 -
您还可以在
if语句中手动设置i = n和j = m,以确保两个循环都终止。break只杀死内部循环。