Работа с размерностями
Сдвиг размерностей массивов
Сдвиг размерностей реализуется функцией 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.6924
B(:.:,
2
)
=
0.5913
0.3803
-
0.0195
-
0.6436
-
1.0091
-
0.0482
B(:.:.
3
)
=
0.0000
1.0950
0.4282
-
0.3179
-
1.87400.8956
B(:.:,
4
)
=
0.7310
0.0403
0.5689
0.5779
0.6771
-
0.2556
N
=
1
Удаление единичных размерностей
Функция squeeze(A) возвращает массив, в котором удалены все единичные размерности. Единичной называется размерность, в которой size(A .dim) == 1. Но если А – одномерный или двумерный массив (матрица или вектор), то функция вернет тот же самый массив А. Следующий пример поясняет работу squeeze:
>
>
A
=
randn(
1.2.1.3.1
);
>
>
B
=
squeeze(A)
B
=
0.6145
1.6924
-
0.6436
0.5077
0.5913
0.3803
Обратите внимание на то, что пятимерный массив А превращается в массив с размерностью 2 и размером 2x3.
Что нового мы узнали?
В этом уроке мы научились:
- Создавать многомерные массивы.
- Применять оператор ":" в многомерных массивах.
- Получать доступ к отдельным элементам многомерных массивов.
- Удалять размерности у многомерного массива.
- Создавать массивы, заполненные константами и случайными числами.
- Осуществлять объединение массивов.
- Вычислять число размерностей массива и определять размер каждой размерности.
- Переставлять, сдвигать и удалять единичные размерности в многомерных массивах.