我要做到以下几点:索引为环MATLAB
创建与1:n
所有可能的排列矩阵,例如
n=4;
L=perms(1:n)';
我得到的输出如预期的那样 -by - 矩阵:
L =
Columns 1 through 13
4 4 4 4 4 4 3 3 3 3 3 3
3 3 2 2 1 1 4 4 2 2 1 1
2 1 3 1 2 3 2 1 4 1 2 4
1 2 1 3 3 2 1 2 1 4 4 2
Columns 14 through 24
2 2 2 2 2 1 1 1 1 1 1
3 4 4 1 1 3 3 2 2 4 4
1 3 1 4 3 2 4 3 4 2 3
4 1 3 3 4 4 2 4 3 3 2
现在我想用这个矩阵的0索引循环:
使用的第一列,我要养活我的回路的以下指标输入:i=4
j=3
,2
,1
。然后对于i=3
j=2
,1
。然后为i=2
j=1
。 i=1
是空
这可能只是做了这样的第一列:
for u=4:-1:1
for v=u-1:-1:1
,但不会对其他列工作,所以我需要做相同,但与矩阵L
,类似的条目对于i=1
列(它不工作MATLB):
u=L(1:4,1)
v=L(u:L(4,1) , 1) %// where u corresponds to L(1,1) then L(2,1) then L(3,1)
(所有列它看起来像:
for i=1:length(L)
for u=L(4*(i-1)+1:4*i)
for v=.. ?
)
这不起作用,因为MATLAB与增量1
从取项的值,当我写L(1,1):L(4,1)
这并不意味着从一行返回条目四号线,而是所有的数字L(1,1)
的值为L(4,1)
(此处为空)。
任何想法?非常感谢你提前
对于数组上的循环需要行向量,试着循环'L(1:4,1)。'(注意转置)。 –
@AndrasDeak是的,谢谢 – Sha