破坏了循环的Matlab代码没有循环

时间:2014-02-19 16:25:45

标签: matlab loops

我试图解决8个皇后的n-queen问题。我在制作第一个for循环时遇到麻烦。它告诉我

  

操作数到||和&&运算符必须可转换为逻辑标量值。 project_4(第12行)出错

if (ya >= 1)&&(ya <= 8)

我不确定这意味着什么或如何解决它。任何建议或帮助将不胜感激。

x1=input('what is the inital x of the queen?');

y1=input('what is the inital y of the queen?');

a1=zeros(8,8);

px=zeros(8);
py=zeros(8);

for k=1:1:8

    for h=1:1:8

        b1=y1-x1;

        ya=h+b1;

        if (ya >= 1)&&(ya <= 8)

            a1(ya,h)=1;

        end
        b2=y1+x1;
        yb=-h+b2;
        if (yb >= 1) && (yb <= 8)
            a1(yb,h)=1;

        end
        a1(y1,h)=1;
        a1(h,x1)=1;
        px(k)=x1;
        py(k)=y1;
    end
    [t,y]=find(a1==0, 1, 'first');
    x1=t;
    y1=y;
end

1 个答案:

答案 0 :(得分:0)

[t,y]=find(a1==0, 1, 'first');行返回空值,因为没有a1 == 0的值。