如何在for循环中更新计数器变量

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)

Sue*_*ver 5

您不能在 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.