Ответы как Леонида, так и мистера Волшебника делают слишком много работы. В случае Леонида нужны только первые три строки. Чтобы показать это, я изменю последние 4 Set
с на Equal
с:
In[65]:= len = 4; oldtable =
Partition[Partition[Range[len^3], len], len]
Out[65]= {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15,
16}}, {{17, 18, 19, 20}, {21, 22, 23, 24}, {25, 26, 27, 28}, {29,
30, 31, 32}}, {{33, 34, 35, 36}, {37, 38, 39, 40}, {41, 42, 43,
44}, {45, 46, 47, 48}}, {{49, 50, 51, 52}, {53, 54, 55, 56}, {57,
58, 59, 60}, {61, 62, 63, 64}}}
In[66]:= oldtable[[All, All, -1]] = oldtable[[All, All, 1]];
oldtable[[All, -1, All]] = oldtable[[All, 1, All]];
oldtable[[-1, All, All]] = oldtable[[1, All, All]];
oldtable[[All, -1, -1]] == oldtable[[All, 1, 1]]
oldtable[[-1, All, -1]] == oldtable[[1, All, 1]]
oldtable[[-1, -1, All]] == oldtable[[1, 1, All]]
oldtable[[-1, -1, -1]] == oldtable[[1, 1, 1]]
Out[69]= True
Out[70]= True
Out[71]= True
Out[72]= True
То, что делает Леонид, показано на рисунках ниже. Строки 4-6 его кода делают что-то, как показано на левой панели: копирование линии (более темный цвет) уже скопированной плоскости (светлые цвета). Линия 7 иллюстрируется правой панелью. Это копия от ячейки к ячейке противоположных по диагонали позиций, и ее действие не включено отдельно ни в одно из первых трех действий копирования, но является результатом их последовательной операции.