下标索引必须是实数正整数或逻辑。

时间:2014-08-28 23:06:29

标签: matlab

我遇到这条消息,“下标索引必须是真正的正整数或逻辑。” ==>中的错误积(B(S,1),B(S,2), 'R *')。 这是我的代码

ptsIntersect=floor(ptsIntersect);
    for s1=1:numBorderPoints
       d1=sqrt((b(s1,1)-ptsIntersect(1,1)).^2 + (b(s1,2)-ptsIntersect(1,2)).^2);
       if (d1<2)
           break;
       end
    end
    plot(b(s1,1),b(s1,2),'*')
     % find second point  of border in intersection
    for s2=1:numBorderPoints
       d2=sqrt((b(s2,1)-ptsIntersect(2,1)).^2 + (b(s2,2)-ptsIntersect(2,2)).^2);
       if (d2<2)
           break;
       end

    end

    plot(b(s2,1),b(s2,2),'*')

    if ( s2-s1>5)
          s=(s1+s2)/2;
          hold on
          plot(b(s,1),b(s,2),'r*')
    end

1 个答案:

答案 0 :(得分:2)

在错误发生之前,s1s2都是正整数。但是当你执行s=(s1+s2)/2时,可能会发生s不是整数,例如(3+2)/2=2.5

在命令窗口中键入s,将显示其值。