從兩個維度提出了矩陣如下:如何通過單個循環遍歷3d矩陣?
for (i = 0; i <length*length; i++)
Mat [i/length, i% length] = i;
那麼,如何通過3D矩陣循環?
for (i = 0; i <length*length*length; i++)
Mat [?] = i;
從兩個維度提出了矩陣如下:如何通過單個循環遍歷3d矩陣?
for (i = 0; i <length*length; i++)
Mat [i/length, i% length] = i;
那麼,如何通過3D矩陣循環?
for (i = 0; i <length*length*length; i++)
Mat [?] = i;
剛寫指數在鹼長度,您將得到N個維數的一般解決方案。
所以,3D將是
for (i = 0; i <length*length*length; i++)
p = i;
z = p % length;
p /= length;
y = p % length;
p /= length;
x = p;
Mat [x, y, z] = i;
或者只是較短
for (i = 0; i <length*length*length; i++)
Mat[i/(length*length), (i/length) % length, i % length] = i
for (i = 0; i <length*length*length; i++)
q = i/(length*length);
r = i%(length*length);
Mat [q, r/length, r%length] = i;
的Python
k = 3
for i in xrange(k * k * k):
q = i/(k * k)
r = i % (k * k)
print q, r/k, r % k
輸出繼電器
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
1 1 1
1 1 2
1 2 0
1 2 1
1 2 2
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 1 2
2 2 0
2 2 1
2 2 2
你怎麼做手工嗎? (提示:寫出例如3x3x3陣列的索引序列。) –