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

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

Вычисление числа размерностей массива

Функция ndims(A) возвращает размерность массива А (если она больше или равна двум). Но если входной аргумент – массив Java или массив массивов Java, то независимо от размерности массива эта функция вернет 2. Следующий пример иллюстрирует применение функции ndims:

>> M=rand(2:3:4:5):
>> ndims(M)
ans =
4

Вычисление размера размерности массива

Для вычисления размера каждой размерности массива используется функция size:

  • М = size(A.DIM) возвращает размер размерности, указанной скаляром DIM, в виде вектора-строки размером 2. Для двумерного или одномерного массива А size(A.l) возвращает число рядов, a size (А, 2) – число столбцов;

Для N-мерных массивов А при n>2 size(A) возвращает N-мерный вектор-строку, отражающий страничную организацию массива, последняя составляющая этого вектора равна N. В векторе отсутствуют данные о единичных размерностях (тех, где расположены вектор-строка или вектор-столбец, т. е .size(A,DIM)==l). Исключение представляют N-мерные массивы Java массивов javaarray, которые возвращают размер массива самого высокого уровня.

Вообще, когда входным аргументом size является javaarray, то возвращаемое число столбцов всегда 1, а число рядов (строк) равно размеру (длине) javarray.

  • [M1, М2,М3,…, MN] = size(A) возвращает размер первых N размерностей массива А;
  • D = size (А), для mxn матрицы А возвращает двухэлементный вектор-строку, в котором первая составляющая – число строк т, а вторая составляющая – число столбцов n;
  • [m.n] = size(A) возвращает число рядов и столбцов в разных выходных параметрах (выходных аргументах в терминологии MATLAB) тип.

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

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

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

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

>> A=[1 2: 3 4]:
>> B=[5 6; 7 8];
>> C=[9 10; 11 12];
>> D=cat(3.A,B.C)
D(:,:,1) =
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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.