即使是假的,Matlab也会执行第一个语句

时间:2017-04-30 21:06:07

标签: matlab if-statement false-positive

我在matlab中有以下功能。我试图改组一个矩阵。但不知怎的,即使语句应该转到其他地方,matlab也会继续执行代码。当涉及到其他问题时,我必须添加一些附加代码,即使它只是** i + 1 。 matlab是正常的还是我错过了什么?

function magic_matrix = magicsquare1(matrix,n)
magic_matrix=ones(n,n)*(-1);
i=3-1;
j=4+1;

for ki=1:n
for kj=1:n
    if(i<1)
        i=n;
    end
    if(j>n)
        j=1;
    end
    if magic_matrix(i,j) == -1

        magic_matrix(i,j)=matrix(ki,kj);
        %X = sprintf('i=%d j=%d',i,j);
        %disp(X)
        i=i-1;
        j=j+1;
    else
        i=i+2;
        j=j-1;
        if(i>n)
            i=1;
        end
        if(j<1)
            j=n;
        end
        magic_matrix(i,j)=matrix(ki,kj);
       % X = sprintf('i=%d / j=%d',i,j);
        %disp(X)
        i=i-1;
        j=j+1;
    end
end
end

0 个答案:

没有答案