sub2ind

Преобразуйте индексы в линейные индексы

Описание

пример

ind = sub2ind(sz,row,col) возвращает линейные индексы ind соответствует индексам и столбцам в row и col для матрицы размера sz. Вот sz - вектор с двумя элементами, где sz(1) задает количество строк и sz(2) задает количество столбцов.

пример

ind = sub2ind(sz,I1,I2,...,In) возвращает линейные индексы ind соответствует многомерным нижним индексам в n массивы I1,I2,...,In для многомерного массива размера sz. Вот sz - вектор с n элементы, задающие размер каждого измерения массива.

Примеры

свернуть все

Отображение из индексов (индексация по положению) в линейные индексы для матрицы 3 на 3 может быть проиллюстрировано следующим образом.

Задайте индексы и столбцы в матрице размером 3 на 3. Преобразуйте индексы в линейные индексы.

row = [1 2 3 1];
col = [2 2 2 3];
sz = [3 3];
ind = sub2ind(sz,row,col)
ind = 1×4

     4     5     6     7

Отображение от индексов до линейных индексов для массива 2 на 2 на 2 может быть проиллюстрировано как в следующем.

Определите строку, столбец и индексы страницы в массиве 2 на 2 на 2. Преобразуйте индексы в линейные индексы.

I1 = [1 2 1 2];
I2 = [2 2 1 1];
I3 = [1 1 2 2];
sz = [2 2 2];
ind = sub2ind(sz,I1,I2,I3)
ind = 1×4

     3     4     5     6

Преобразуйте индекс индекса трехмерного массива в один линейный индекс.

Создайте массив и найдите линейный индекс, соответствующий элементу в (2,1,2) положении.

A = rand(3,4,2);
linearInd = sub2ind(size(A),2,1,2)
linearInd = 14

Проверьте, что обе версии индекса относятся к одному и тому же элементу.

A(2,1,2)
ans = 0.4854
A(14)
ans = 0.4854

Входные параметры

свернуть все

Размер массива, заданный как вектор положительных целых чисел. Каждый элемент этого вектора указывает размер соответствующей размерности. Для примера, [2 3 4] задает массив 2 на 3 на 4.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Строковые индексы, заданные как скалярный, векторный, матричный или многомерный массив. Размер row должно совпадать с размером col.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Индексы столбцов, заданные как скаляр, вектор, матрица или многомерный массив. Размер col должно совпадать с размером row.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Многомерные индексы, заданные как скаляр, вектор, матрица или многомерный массив. Каждый массив I1,I2,…,In должен иметь тот же размер.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Линейные индексы, заданные как скалярный, векторный, матричный или многомерный массив. Размер ind совпадает с размером входа row, col, или I1,I2,…,In.

Типы данных: double

Алгоритмы

Для A массива, если ind = sub2ind(size(A),I1,…,In), затем A(ind(k)) = A(I1(k),…,In(k)) для всех k.

Расширенные возможности

..
Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте