我运行以下代码:

for i=1:length(matr)


...其中matr是方矩阵。在此循环中,matr的大小发生了变化,但似乎循环继续运行,直到i不超过length(matr)的初始值为止

如何在循环条件下保持length(matr)的新鲜度?

这是我的代码。

for i=1:length(matr1)
       for j=1:length(matr1)
           if((i~=j)&&(ismember(i,ind3)==0)&&(ismember(j,ind3)==0))
               if (i>length(matr1))||(j>length(matr1))
                   continue
               end
               ind1 = find_tree(matr1,i);
               ind2 = find_tree(matr1,j);
               b = is_isomorphic(matr1(ind1,ind1),matr1(ind2,ind2),encode(ind1),encode(ind2));
               if b,
                   number = number + length(ind1);
                   matr1(ind2,:) = [];
                   matr1(:,ind2) = [];
                   ind3 = find(summ_rows==-1);
               end
           end
       end
    end


我设法添加

`if (i>length(matr1))||(j>length(matr1))`,


...因为ij超出了矩阵的尺寸。

最佳答案

您应该使用while循环:

ii = 0;
while(ii <= length(matr))
    ii = ii + 1;

    %// Your loop code here: e.g. the following line that alters the size of matr
    matr = rand(randi(20) + 10);

end

07-24 15:15