如何一起运行两个for循环?

时间:2013-12-27 11:09:30

标签: matlab for-loop nested-loops

在我的代码中,我想改变两个参数,即" i"和" t"。 " i"的价值和" t"会有所变化,如果t = 1:10而i =(t + 1):11那么,

首先我需要得到i = 2 3 4 5 .... 11和t = 1

的值

然后我需要获得i = 3 4 5 .... 11和t = 2

的值

然后我需要得到i = 4 5 .... 11和t = 3

的值

。 。 。

我需要得到i = 8 9 .... 11和t = 10

的值

我的代码如下:

        W=12;

        for t=1:10
          for i=t+1:11        
            s{i} =(fullfact(ones(1,i)*(W + 1)) - 1);
            B{i}= unique((sort(s{i}(sum(s{i},2) == i,:),2)),'rows');
            B{i}(B{i} == 0) = inf;
            A{i}= sort(B{i}, 2);
            A{i}(A{i}==inf) = 0;    
            idx = (A{i}(:,i-t)==1 );
            A {i,t+1}= A{i}(idx,:);
        end
     end

因此,A的值应为9列10行。但我不是这样的。 需要MatLab专家的帮助!

2 个答案:

答案 0 :(得分:0)

你快到了

oneLessThanTStart = t-1;
for t=1:oneLessThanTStart
  for i=0:10

  end
end

应该提到我从未见过matlab。

答案 1 :(得分:0)

t循环应该是外部的:

for t=1:9
   for i=1:(t-1)
        // it could be necessary swap some t with i and vice versa
   end
 end

让我知道。这大约是nested loop而不是Matlab。