Matlab 而在它应该离开之前

Matlab 而在它应该离开之前,matlab,Matlab,这是一个简单的问题,但有点难以解释 我有一个像这样的while循环 (不是实际代码) 但是,它在第三次迭代中退出,而不是第四次迭代缺少最后一行 我的理论是,x的原始大小是4,进入while循环。通过添加一行并删除另一行,matlab认为变量现在为size==3,并在删除3个变量时退出 这对我来说没什么意义。代码是保密的,因此我无法共享实际代码,但如果必要,我可以尝试使用我可以共享的代码复制错误 我希望有人能有一个神奇的答案 谢谢我明白了,很抱歉打扰大家。它必须是>=1,然后它还将处理列表中的最后

这是一个简单的问题,但有点难以解释

我有一个像这样的while循环

(不是实际代码)

但是,它在第三次迭代中退出,而不是第四次迭代缺少最后一行

我的理论是,x的原始大小是4,进入while循环。通过添加一行并删除另一行,matlab认为变量现在为size==3,并在删除3个变量时退出

这对我来说没什么意义。代码是保密的,因此我无法共享实际代码,但如果必要,我可以尝试使用我可以共享的代码复制错误

我希望有人能有一个神奇的答案


谢谢

我明白了,很抱歉打扰大家。它必须是>=1,然后它还将处理列表中的最后一项。示例代码虽然是无限循环,但永远不会处理列表中的最后一项

请提供一个重现您的问题的循环。您在此处显示的代码段进入无限循环。您是否尝试过调试代码并查看
x
的实际情况?@shai是的,它会按预期的大小增减。@Schorsch我将尝试一下,但这之前的代码涉及其中。我知道90%的情况下是其他代码导致了问题,但我想我试图排除一个已知的问题,同时无法检测变量是否被添加到或删除。
x = [1;2;3;4]

while size(x(:,1),1) > 1  
    %Do stuff

    %When a condition is met move it to the bottom to be processed last
    %In this case "2"
    x = [x; x(2,:)];

    %Remove the original line for two
    x(2,:) = [];
end