2017-04-16 67 views
0

我在寻找Math.NET Numerics等效于Numpy.dot的非对称矩阵。对于1d和Nd矩阵,Numpy.dot的Math.Net等效值是多少?

np.dot:对于二维阵列,它相当于矩阵乘法,而一维阵列是向量的内积(无复共轭)。对于N维它是一个和积过的最后一个轴和第二个到最后B的:

import numpy as np 
a = np.random.randn(2, 3) * 0.01 
b = np.random.randn(3, 1) * 0.01 

a 
array([[ 0.01543693, 0.0090974 , 0.00835993], 
    [ 0.00475191, 0.00953389, -0.00854795]]) 

b 
array([[ 0.00853528], 
    [ 0.00428625], 
    [-0.0110117 ]]) 

np.dot(a, b) 
array([[ 7.86952720e-05], 
    [ 1.75551012e-04]]) 

我曾尝试:Matrix<float>.op_DotMultiply等各种方式,但没有得到什么,我找。

回答

0

好了,好了,对我来说,点积和*不同的东西:

using MathNet.Numerics.LinearAlgebra; 
using MathNet.Numerics.LinearAlgebra.Double; 

Matrix<double> a = DenseMatrix.OfArray(new double[,] 
{ 
    { 0.01543693, 0.0090974, 0.00835993 }, 
    { 0.00475191, 0.00953389, -0.00854795 } 
}); 

Matrix<double> b = DenseMatrix.OfArray(new double[,] 
{ 
    { 0.00853528 }, 
    { 0.00428625}, 
    { -0.0110117 } 
}); 

Console.WriteLine("{0:0}", (a * b).ToString()); 

给出:

DenseMatrix 2x1-Double 
7.86952E-05 
0.000175551 

所以Numpy.dot相同Math.Net M * M用于非对称矩阵?这对我来说毫无意义!

相关问题