i1 : M = randomMultidimensionalMatrix(2,4,3,2) o1 = {{{{8, 1}, {3, 7}, {8, 3}}, {{3, 7}, {8, 8}, {5, 7}}, {{8, 5}, {2, 3}, ------------------------------------------------------------------------ {6, 3}}, {{6, 8}, {6, 9}, {3, 7}}}, {{{6, 9}, {6, 2}, {6, 0}}, {{2, 6}, ------------------------------------------------------------------------ {9, 3}, {5, 6}}, {{3, 5}, {7, 7}, {9, 4}}, {{5, 0}, {4, 3}, {1, 8}}}} o1 : 4-dimensional matrix of shape 2 x 4 x 3 x 2 over ZZ |
i2 : s = {0,2}; |
i3 : Ms = flattening(s,M) o3 = | 8 1 3 7 8 5 6 8 | | 3 7 8 8 2 3 6 9 | | 8 3 5 7 6 3 3 7 | | 6 9 2 6 3 5 5 0 | | 6 2 9 3 7 7 4 3 | | 6 0 5 6 9 4 1 8 | 6 8 o3 : Matrix ZZ <--- ZZ |
i4 : s' = {1,3}; |
i5 : Ms' = flattening(s',M) o5 = | 8 3 8 6 6 6 | | 1 7 3 9 2 0 | | 3 8 5 2 9 5 | | 7 8 7 6 3 6 | | 8 2 6 3 7 9 | | 5 3 3 5 7 4 | | 6 6 3 5 4 1 | | 8 9 7 0 3 8 | 8 6 o5 : Matrix ZZ <--- ZZ |
i6 : assert(Ms == transpose Ms') |
If the first argument is an integer i, it is interpreted as the list {i}.
i7 : flattening(1,M) o7 = | 8 1 3 7 8 3 6 9 6 2 6 0 | | 3 7 8 8 5 7 2 6 9 3 5 6 | | 8 5 2 3 6 3 3 5 7 7 9 4 | | 6 8 6 9 3 7 5 0 4 3 1 8 | 4 12 o7 : Matrix ZZ <--- ZZ |
i8 : assert(oo == flattening({1},M)) |
The object flattening is a method function.