sub2ind

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

Синтаксис

linearInd = sub2ind (matrixSize, rowSub, colSub)
linearInd = sub2ind (arraySize, dim1Sub, dim2Sub, dim3Sub...)

Описание

linearInd = sub2ind(matrixSize, rowSub, colSub) возвращает линейные индексные эквиваленты индексам строки и столбца rowSub и colSub для матрицы размера matrixSize. Входной параметр matrixSize является вектором с 2 элементами, который задает количество строк и столбцов в матрице как [nRows, nCols]. rowSub и входные параметры colSub являются положительными скалярами целого числа или векторами, которые задают одну или несколько пар индекса столбца строки для матрицы.

linearInd = sub2ind(arraySize, dim1Sub, dim2Sub, dim3Sub, ...) возвращает линейные индексные эквиваленты указанным индексам для каждой размерности N-мерного массива размера arraySize. Входной параметр arraySize является вектором n-элемента, который задает количество размерностей в массиве. Входные параметры dimNSub являются положительными скалярами целого числа или векторами, которые указывают один или несколько индексов столбца строки для матрицы.

Всеми нижними входными параметрами может быть single, double или любой целый тип. linearInd вывод всегда имеет класс double.

В случае необходимости sub2ind принимает, что незаданные запаздывающие индексы равняются 1.

Примеры

свернуть все

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

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

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

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

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

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

Смотрите также

| |

Представлено до R2006a

Была ли эта тема полезной?