虽然退出之前应该

时间:2014-12-04 19:13:30

标签: matlab

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

我有一个看起来像这样的while循环;

(不是实际代码)

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

然而,它在第三次迭代时退出,而不是在第四次迭代中退出。

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

对我来说没什么意义。代码是保密的,所以我不能共享实际代码,但如果有必要,我可以尝试用我可以共享的代码复制错误。

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

由于

1 个答案:

答案 0 :(得分:1)

我明白了,抱歉让每个人都感到害怕。它必须是> = 1然后它还将处理列表中的最后一项。示例代码虽然是无限循环,但永远不会处理列表中的最后一项。