Иллюстрированный самоучитель по MatLab

Работа с размерностями

Сдвиг размерностей массивов

Сдвиг размерностей реализуется функцией 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.

Что нового мы узнали?

В этом уроке мы научились:

  • Создавать многомерные массивы.
  • Применять оператор ":" в многомерных массивах.
  • Получать доступ к отдельным элементам многомерных массивов.
  • Удалять размерности у многомерного массива.
  • Создавать массивы, заполненные константами и случайными числами.
  • Осуществлять объединение массивов.
  • Вычислять число размерностей массива и определять размер каждой размерности.
  • Переставлять, сдвигать и удалять единичные размерности в многомерных массивах.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.