我运行以下代码:
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))`,
…因为i
和j
超出了矩阵的维数。
您应该使用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