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

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