dind2sind

Функция перевода двойного индекса элемента матрицы в одинарный

Синтаксис:

sind = dind2sind(rows, cols, dind1, dind2);

Аргументы:

rows - целое число строк матрицы, индексы которой конвертируются;

cols - целое число столбцов матрицы, индексы которой конвертируются;

dind1 - целое число, номер строки матрицы;

dind2 - целое число, номер столбца матрицы.

Описание:

В некоторых системах инженерных расчетов, обращение к элементу матрицы происходит с помощью одного индекса i (single index) el = M(i) и нумерации элементов матрицы осуществляется по столбцам сверху вниз начиная с левого. В то время, как в SimInTech используется адресация с помощью двух индексов i,j (double index) el = M[i][j], которые обозначают номер строки и номер столбца, на пересечении которых находится элемент. Функция dind2sind осуществляет вычисление одинарного индекса i матрицы размерностью rows×cols, для обращения к элементу, заданному двойным индексом dind1, dind2.

Результат:

sind - целое число, одинарный индекс элемента матрицы.

Пример:

sind = 4; // индекс элемента матрицы 5x6 в системе Matlab 
dind = sind2dind(5, 6, sind); // двойной индекс [i,j] того же элемента в системе координат SimInTech
i = dind[1]; // значение i=4
j = dind[2]; // значение j=1

sind2 = dind2sind(5, 6, i, j);  // обратное преобразование индексов SimmInTech в индекс Matlab

В данном примере одинарным индексом задан элемент номер 4 в некой матрице, размерностью 5×6. С помощью функции sind2dind осуществляется получение соответствующих этому элементу индексов i=4 и j=1 в этой же матрице, но в системе координат SimInTech. Обратное преобразование осуществляется с помощью функции dind2sind, которая возвращает одинарный индекс 4.

Сопутствующие материалы