Матрица 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, вы получаете результаты скалярного скалярного произведения каждой строки матрицы с вектором в виде вектора на выходе.