如何在Matlab中改变循环条件



我运行以下代码:

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

相关内容

  • 没有找到相关文章

最新更新