这是我遇到的一个简单问题,但有点难以解释。
我有一个看起来像这样的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个变量时退出。
对我来说没什么意义。代码是保密的,所以我不能共享实际代码,但如果有必要,我可以尝试用我可以共享的代码复制错误。
我希望有人有一个神奇的答案。
由于
答案 0 :(得分:1)
我明白了,抱歉让每个人都感到害怕。它必须是> = 1然后它还将处理列表中的最后一项。示例代码虽然是无限循环,但永远不会处理列表中的最后一项。