Mac*_*nos 2 matlab loops matrix conditional-statements
我运行这段代码:
for i=1:length(matr)
Run Code Online (Sandbox Code Playgroud)
...哪里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
Run Code Online (Sandbox Code Playgroud)
我设法添加
`if (i>length(matr1))||(j>length(matr1))`,
Run Code Online (Sandbox Code Playgroud)
...因为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
Run Code Online (Sandbox Code Playgroud)