ojAlgo: подматрица среза или извлечения
В библиотеке Java ojAlgo
Как я могу нарезать матрицу или извлечь субматрицу из существующей?
Например, matrix A = [[1,2,3],[4,5,6],[7,8,9]]
,
Я ищу метод, который выглядит как slice(a,b,c,d)
где a, b - начальный и конечный индексы строк, а c, d - начальный и конечный индексы столбцов.
Например, если я позвоню A.slice(1,3,1,3)
должно вернуться [[5,6],[8,9]]
,
Я попробовал slice
метод в SparseStore
, но это не работает, как я ожидал.
1 ответ
Решение
Методы "среза" всегда возвращают что-то 1D. Вы можете вырезать диапазон индекса, строку, столбец, диагональ...
Если вы хотите получить подматрицу матрицы, вы можете сделать это следующим образом:
matrix.logical().limits(3, 3).offsets(1, 1).get();
или с вашим примером, так как исходная матрица 3x3, достаточно сделать:
matrix.logical().offsets(1, 1).get();