MathNet.Numerics.LinearAlgebra - Как искать несколько строк в матрице
Я пытаюсь выполнить умножение разреженных матриц с помощью MathDotNet Numerics. Вход:
Matrix<float> mat // dense matrix of size n x k, where n is large and k ~ 10
int[] index // int[] of length l ~ 10, e.g. { 7, 13, 11, ... }
Поэтому я хотел бы найти несколько столбцов, например что-то вроде "mat[index]
", который будет иметь форму l x k
.
Может ли кто-нибудь сказать мне, как я мог это сделать?
(я перебираю index
и складывать ряды или есть способ лучше?)
1 ответ
Вот решение для укладки:
Matrix<T> lookup = CreateMatrix.DenseOfRowVectors(indices.Select(i => matrix.Row(i)));
Кажется, что есть способ получше, который не требует нового выделения памяти.