Перестановки размерностей массивов

Если представить многомерный массив в виде страниц, то их перестановка является перестановкой размерностей массива. Для двумерного массива перестановка часто означает транспонирование — замену строк столбцами и наоборот. Следующие функции обобщают транспонирование матриц для случая многомерных массивов и обеспечивают перестановку размерностей многомерных массивов:

  • permute (A, ORDER) — переставляет размерности массива А в порядке, определяемом вектором перестановок ORDER. Вектор ORDER — одна из возможных перестановок всех целых чисел от 1 до N, где N — размерность массива А;

  • ipermuteCA, ORDER) — операция, обратная permute: permute(permute(A. ORDER), ORDER)=A

Ниже приводятся примеры применения этих функций и функции size:

» А=[1 2: 3 4]:

» В=[5 6; 7 8];

» С=[9 10; И 12];

» D=cat(3.A,B.C)

D(:,:,l) =

1 2

3  4

9 10

11 12

» size(D)

ans =

2 2 3

» size(permute(D.[3 2 1]))

ans=

3 2 2

»size(ipermute(D.[2 1 3]))

ans=

2 2 3

» ipermute(permute(D,[3 2 1]),[3 2 1])

1 2

3 4

ans(:. :,2) =

5 6

78

ans(:.:,3) =

9 10

11 12