Я хочу выполнить точечное умножение массива столбцов с каждым массивом/вектором столбцов в заданной матрице на С#, используя библиотеку Math.Net Numerics.
Документации по подобным операциям мало, пока у меня есть приведенный ниже код, который не работает. Я пытаюсь использовать LINQ, так как предпочитаю циклы for. проблема, с которой я столкнулся с LINQ, заключается в том, что я не могу переназначить свою матрицу, когда пытаюсь перечислить каждый столбец моей матрицы как вектор и выполнить метод PointwiseMultiply().
Матрица fitKernel — это моя матрица, и я хочу поточечно умножить каждый столбец на массив столбцов wF и обновить мою матрицу fitKernel с помощью LINQ. fitKernel — это матрица 9 x 5, а wF — массив double[] 9 x 1, который я конвертирую в вектор в LINQ ниже.
Matrix<double> fitKernel = Matrix<double>.Build.DenseOfColumnArrays(c1, c2, c3, c4, ones);
double[] wF = Enumerable.Repeat(1.0, 9).ToArray();
fitKernel = fitKernel.EnumerateColumns()
.Select(v => v.PointwiseMultiply(Vector<double>.Build.DenseOfArray(wF)));
Приведенный выше код, использующий EnumerateColumns(), возвращает IEnumerable векторов, но когда я пытаюсь присвоить значение fitKernel, он жалуется на присвоение типа Enumerable матрице.