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)));

Кажется, что есть способ получше, который не требует нового выделения памяти.

Другие вопросы по тегам