如果在Matlab中的FOR循环内部不起作用

use*_*726 1 matlab for-loop if-statement

我在下面有这个函数,但循环中的if语句for不起作用.我想<=不是的<,也round(),但他们没有工作.

function points1=tracker(count1,points1,u,v,I2)

for j=1:count1

   if  (points1(1,j) < size(u,1))&&(points1(2,j) < size(u,2))

       points1(1,j)= points1(1,j)+v(points1(1,j),points1(2,j));
       points1(2,j)= points1(2,j)+u(points1(1,j),points1(2,j));
       I2(round(points1(1,j)),round(points1(2,j)))=255;

   else

       points1(:,j)=[];
       count1=count1-1;
       j=j-1;

   end

end

    figure, imshow(I2)

end
Run Code Online (Sandbox Code Playgroud)

hor*_*ler 8

你试图从循环(你的行)中改变for循环的增量.你不能这样做.该文档的状态:jj=j-1for

避免为循环体内的索引变量赋值.for语句会覆盖循环中对索引所做的任何更改.

您需要使用while循环代替或使用中间变量找到另一种方法来执行您需要的操作.