Работа с размерностями
Сдвиг размерностей массивов
Сдвиг размерностей реализуется функцией shiftdim:
- B=shiftdim(X,N) – сдвиг размерностей в массиве X на величину N. Если М>0, то сдвиг размерностей, расположенных справа, выполняется влево, а N первых слева размерностей сворачиваются в конец массива, т. е. движение размерностей идет по кругу против часовой стрелки. Если М<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;
- [B,Nshifts]=shiftdim(X) – возвращает массив В с тем же числом элементов, что и у массива X, но с удаленными начальными единичными размерностями. Выходной параметр Nshifts показывает число удаленных размерностей. Если X – скаляр, функция не изменяет X, В, Nshifts.
Следующий пример иллюстрирует применение функции shiftdim:
>> A=randn(1.2.3.4); >> [B,N]=SHIFTdim(A) B(:.:.1) =-2.1707-1.01060.5077-0.05920.6145 1.6924B(:.:,2) =0.5913 0.3803-0.0195-0.6436-1.0091-0.0482B(:.:.3) =0.0000 1.0950 0.4282-0.3179-1.87400.8956B(:.:,4) =0.7310 0.0403 0.56890.5779 0.6771-0.2556N =1Удаление единичных размерностей
Функция squeeze(A) возвращает массив, в котором удалены все единичные размерности. Единичной называется размерность, в которой size(A .dim) == 1. Но если А – одномерный или двумерный массив (матрица или вектор), то функция вернет тот же самый массив А. Следующий пример поясняет работу squeeze:
>> A=randn(1.2.1.3.1); >> B=squeeze(A) B=0.6145 1.6924-0.64360.5077 0.5913 0.3803Обратите внимание на то, что пятимерный массив А превращается в массив с размерностью 2 и размером 2x3.
Что нового мы узнали?
В этом уроке мы научились:
- Создавать многомерные массивы.
- Применять оператор ":" в многомерных массивах.
- Получать доступ к отдельным элементам многомерных массивов.
- Удалять размерности у многомерного массива.
- Создавать массивы, заполненные константами и случайными числами.
- Осуществлять объединение массивов.
- Вычислять число размерностей массива и определять размер каждой размерности.
- Переставлять, сдвигать и удалять единичные размерности в многомерных массивах.
