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

 

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

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

  • 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