Java 矩阵运算(转置)

Java 矩阵运算(转置),java,matrix,transpose,operation,colt,Java,Matrix,Transpose,Operation,Colt,我想执行矩阵运算,例如,找到给定矩阵a的转置矩阵 我找到了一些这样做的库,例如Colt: 在第二个链接中提到,如果要打印转置,请键入: System.out.println(matrix.viewDice()); 但是,我不想打印转置矩阵。我想将其存储在第二个矩阵中,例如B,它将具有适当的维度 有什么想法吗?你看过图书馆吗?e、 g: 下面是Java线性代数中转置矩阵的另一个示例: // create simple 2D array matrix of double[][] array Mat

我想执行矩阵运算,例如,找到给定矩阵a的转置矩阵

我找到了一些这样做的库,例如Colt:

在第二个链接中提到,如果要打印转置,请键入:

System.out.println(matrix.viewDice());
但是,我不想打印转置矩阵。我想将其存储在第二个矩阵中,例如B,它将具有适当的维度

有什么想法吗?

你看过图书馆吗?e、 g:


下面是Java线性代数中转置矩阵的另一个示例:

// create simple 2D array matrix of double[][] array
Matrix a = new Basic2DMatrix(new double[] {
  { 1.0, 2.0, 3.0 },
  { 4.0, 5.0, 6.0 },
  { 7.0, 8.0, 9.0 }
});

// transpose out-of-place
Matrix b = a.transpose();

// output matrices  
System.out.println(a);
System.out.println(b);

使用colt库,您只需

DoubleMatrix2D transposed = matrix.viewDice();

返回一个DoubleMatrix2D。

只是为了增加我的2美分,因为我正在考虑自己实现一个矩阵转置

我们可以为原始的Java2D数组添加一个包装器吗

当转置矩阵时,根本不转置实际数组,而只是在包装器中将其标记为transpose=true

当您希望通过包装器访问3,2处的值时,包装器交换行和列索引,并返回2,3处的值

您可以对其他操作执行相同的操作,直到真正需要转置为止


实际上,我的意思是,实际的转置矩阵比使用原始矩阵具有计算性能优势,这主要取决于您将对矩阵执行什么操作。

Um,DoubleMatrix2D b=matrix.viewDice;?是的,你说得对!非常感谢完美的真的很管用!其中只有一个小问题:当我键入System.out.printtranspose时;它在屏幕上打印Array2DroRealMatrix{{1.0,4.0}、{2.0,5.0}、{3.0,6.0}。我怎样才能只打印{{1.0,4.0},{2.0,5.0},{3.0,6.0}?最简单的方法是System.out.printlntranspose.toString.replaceFirst^[^{]*;。
DoubleMatrix2D transposed = matrix.viewDice();