【发布时间】:2013-12-27 11:09:29
【问题描述】:
在我的代码中,我想改变两个参数,即“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 专家的帮助!
【问题讨论】:
-
你的 i=1:5 不超过 10。
-
抱歉,应该是 i=1:10。更新请检查。
-
什么是 W?什么尺寸?
-
W=12,你现在可以检查@NKN
-
这部分会产生错误:idx = (A{i}(:,i-t)==1 );当 i==t.
标签: matlab for-loop nested-loops