MATLAB continue函数跳过错误的交互

MATLAB continue函数跳过错误的交互,matlab,for-loop,continue,Matlab,For Loop,Continue,我有一个“三重嵌套”for循环。我在最后一个for循环中有一个continue,当它等于第一个for循环时(请参见代码)。我尝试在一个单独的函数中调试该问题,以查看是否遗漏了某些内容,但for循环本身在原则上运行良好。问题是,当运行时,continue函数跳出当前for循环,跳入第二个for循环。我从来没有见过continue函数能做到这一点,我已经尝试了所有我能想到的方法来使它正确 代码如下: for i = 1:n acc = 0; for c = 0:2

我有一个“三重嵌套”for循环。我在最后一个for循环中有一个continue,当它等于第一个for循环时(请参见代码)。我尝试在一个单独的函数中调试该问题,以查看是否遗漏了某些内容,但for循环本身在原则上运行良好。问题是,当运行时,continue函数跳出当前for循环,跳入第二个for循环。我从来没有见过continue函数能做到这一点,我已经尝试了所有我能想到的方法来使它正确

代码如下:

for i = 1:n
    acc = 0; 
    for c = 0:2 
        disp(i); **<---for loop continues to here instead of in the "j" for loop and going to j = 2**
        disp(c);
        for j = 1:n
            disp(j);
            if i == j
                continue;
            else
                if c == 0
                    acc = acc + (m(j)/r(i,j))*(r0(3*j)-r0(3*i));
                else
                    acc = acc + (m(j)/r(i,j))*(r0((3*(j-1))+c)-r0((3*(i-1))+c));
                end
            end
            %multiplying by gravitational constant
            acc = G*acc;
            %defining velocity in terms of acceleration
            if c == 0
                dy(3*n+(3*i)) = acc;
            else
                dy(3*n+(3*(i-1)+c)) = acc;
            end
            disp(dy)
        end
    end
end

感谢您的帮助。

函数的
n
值是多少?它设置在函数的开头。对于我的工作来说,不是2,3,就是4。我得到了关于n=2的问题(到目前为止,也可能是其他问题)在错误案例中显示输出比较我的:n_body@setup 1(x)0(c)1(j)1(x)1(c)1(j)@madpysicast
length
并不“总是”m中的行数。它是向量/矩阵中最大的非单体维度。例如,给定一个4x6x8x3x2矩阵,
length
将报告8。当与向量一起使用时,使用
length
会产生错误的安全感,因为只有一个非单一维度。因此,将其应用于矩阵和多维数据是常见的错误来源。如果我能从用户那里获得一个短语,请不要使用
length
。Ever.
n
的值是多少?它设置在函数的开头。对于我的工作来说,不是2,3,就是4。我得到了关于n=2的问题(到目前为止,也可能是其他问题)在错误案例中显示输出比较我的:n_body@setup 1(x)0(c)1(j)1(x)1(c)1(j)@madpysicast
length
并不“总是”m中的行数。它是向量/矩阵中最大的非单体维度。例如,给定一个4x6x8x3x2矩阵,
length
将报告8。当与向量一起使用时,使用
length
会产生错误的安全感,因为只有一个非单一维度。因此,将其应用于矩阵和多维数据是常见的错误来源。如果我能从用户那里获得一个短语,请不要使用
length
。曾经
n_body
@setup

 1

 0

 1

 1

 1

 1