Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中改变循环条件?_Matlab_Loops_Matrix_Conditional Statements - Fatal编程技术网

如何在Matlab中改变循环条件?

如何在Matlab中改变循环条件?,matlab,loops,matrix,conditional-statements,Matlab,Loops,Matrix,Conditional Statements,我运行以下代码: for i=1:length(matr) …其中,matr是方阵。在这个循环中,matr的大小会改变,但循环似乎会继续运行,直到i不超过length(matr)的初始值为止。 如何在循环条件下保持长度(matr)的新鲜度 这是我的密码 for i=1:length(matr1) for j=1:length(matr1) if((i~=j)&&(ismember(i,ind3)==0)&&(ismember

我运行以下代码:

for i=1:length(matr)
…其中,
matr
是方阵。在这个循环中,
matr
的大小会改变,但循环似乎会继续运行,直到
i
不超过
length(matr)的初始值为止。

如何在循环条件下保持
长度(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
ii=0;

虽然(ii)你能描述一下你的循环试图做什么吗?你可能应该使用
while
循环来做这个,而不是
循环来做
谢谢你。而且,是真的吗,for循环的边界是在初始迭代之前才计算出来的?@restest是的,据我所知,这是真的。对你来说测试起来很容易,我认为这可能是相对的ted到JIT加速。你会得到不同的结果吗?@bdecaf如果我没有测试过,但我不这么认为。
1:length(matr1)
首先创建一个向量
[1,2,3…
,然后
I
将迭代该向量。我非常确信这是在创建循环时设置的,无论是JIT还是否。