Math.Net Numerics库Transpose不起作用

时间:2016-04-05 15:57:10

标签: c# visual-studio-2010 matrix mathnet

所以我想转置我用

定义的矩阵
using MathNet.Numerics.LinearAlgebra.Double;
     var MatrixValues = new double[]{1,1,2,2,3,3}
     var M = Matrix<double>.Build; 
     var C = M.Dense(3,2,MatrixValues);  
     var TR = C.Transpose();

所以我得到的结果是一个非常奇怪的矩阵,它不是转置。我认为这是因为矩阵定义为DenseColumnMajor,但我该如何更改呢?

所以我有一个3乘2的矩阵,如:

1 1
2 2 
3 3

我想要的结果是:

1 2 3
1 2 3

1 个答案:

答案 0 :(得分:1)

在这种情况下,

转置正常工作:

C:
DenseMatrix 3x2-Double
1  2
1  3
2  3

TR:
DenseMatrix 2x3-Double
1  1  2
2  3  3

如文档所述,特定构建器期望数组按列主要顺序排列。有很多方法可以创建矩阵。如果你不能按列主顺序重新排列数组,也许另一种方式对你来说效果更好。请参阅Creating Matrices and Vectors