Sho*_*lot 2 matlab counter for-loop
假设我有一个 for 循环,它使用 counter 从 10 计数到 1 k。在循环中,当k变为 5 时,我使k=4. 当我k在每个循环中输出时,我预计它会像这样跳过 4:
10 9 8 7 6 5 3 2 1
Run Code Online (Sandbox Code Playgroud)
相反,我将所有数字从 10 降到 1,它没有跳过 4。我怎样才能让它跳过 4?
for k=10:-1:1
if i==5
k=i-1;
end
end
Run Code Online (Sandbox Code Playgroud)
您不能在 MATLAB 的循环内修改循环索引。您的两个选择是在循环之前省略该索引值
numbers = 10:-1:1;
numbers(numbers == 4) = [];
for k = numbers
% Stuff
end
Run Code Online (Sandbox Code Playgroud)
或者您可以使用while循环而不是for循环
k = 10;
while k > 0
if k == 5
k = k - 1;
end
k = k - 1;
end
Run Code Online (Sandbox Code Playgroud)
或者您也可以按照@beaker 的建议使用continue.