1

所以我想转置一个我定义的矩阵

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 x 2 矩阵,例如:

1 1
2 2 
3 3

我想要的结果是:

1 2 3
1 2 3
4

1 回答 1

1

在这种情况下,Transpose 可以正常工作:

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

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

如文档所述,特定的构建器希望数组按列主要顺序排列。有很多方法可以创建矩阵。如果您不能以列优先顺序重新排列数组,那么另一种方法可能对您更有效。请参阅创建矩阵和向量

于 2016-04-05T17:04:59.260 回答