Получить индекс матрицы из индекса массива - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь получить матричный индекс из индекса массива

Пример: у меня есть матрица 3 * 2

a b

c d

e f

, которую в виде массива можно записать как [a,b,c,d,e,f].

С позиции элемента в массиве, скажем, 5-й, я хочу получить позицию в матрице, которая в этом случае равна 3 * 1

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020
def GetRowAndColum(iNoOfRows,  iNoOfColumn, iIndex):
        #Floor division to get row
        iRowInMatrix = iIndex//iNoOfColumn
        iColumnInMatrix = iIndex % iNoOfColumn
        return iRowInMatrix, iColumnInMatrix


mat = ['a', 'b', 'c', 'd', 'e', 'f']
iNoOfColumn = 2
iNoOfRows = 3

iIndex = 5
i, j = GetRowAndColum(iNoOfRows, iNoOfColumn, iIndex)
print "Row in matrix: ", i
print "Column in matrix: ", j

OutPut:

[Tryouts] $ python TestMat.py Строка в матрице: 2 Столбец в матрице: 1

Я принял матрицу с нулевым индексом. Если ваш индекс начинается с 1, просто добавьте 1 к индексу строк и столбцов.

0 голосов
/ 06 февраля 2020

Используйте целочисленное деление и остаток

row = i // width
col = i % width
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...