Матрица C# *Vector = DotProduct с использованием библиотеки MathNet

В настоящее время я создаю библиотеку FeedForward Neural Network на C# и борюсь с умножением матриц.

Для тех, кто знаком с библиотекой MathNet; существует ли существующая функция, в которой она может взять матрицу и вектор (или наоборот) и вернуть скалярное произведение в виде точечного произведения?

Заранее спасибо.

3 ответа

Вы правы, похоже, для этого не существует существующей функции. Вы можете использовать следующее:

double dotproduct = 0;
for (i = 0; i <= m.ColumnCount; i++) {
    dotproduct += m.Column(i).DotProduct(v);
}

Решение скалярного произведения двух векторов в MathNet (не удалось понять, как это сделать с помощью матрицы)

Установите MathNet.Spatial nuget

using MathNet.Spatial.Euclidean;

Потом...

В Vector3D struct происходит из пространственного эклуидиевого пространства имен

оператор * между двумя векторными объектами в mathnet.numerics является их скалярным произведением.

Кроме того, если вы умножаете матрицу mxn на вектор длины n, вы получаете результаты скалярного скалярного произведения каждой строки матрицы с вектором в виде вектора на выходе.

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