我试图用ojAlgo来解决一些线性代数问题。我是在问是否有任何“聪明”的方法来使用一个存在的数组来创建一个矩阵。
这是我天真的做法:
final double[][] myArray = {
{ 1.1, 1.2, 1.3, 1.4, 1.5 },
{ 2.1, 2.2, 2.3, 2.4, 2.5 },
{ 3.1, 3.2, 3.3, 3.4, 3.5 }
};
final Builder<PrimitiveMatrix> myBuilder = PrimitiveMatrix.getBuilder(myArray.length, myArray[0].length);
for (int i = 0; i < myArray.length; i++) {
for (int j = 0; j < myArray[0].length; j++) {
myBuilder.set(i, j, myArray[i][j]);
}
}
final PrimitiveMatrix myMatrix = myBuilder.build();
System.out.println(myMatrix);这是可行的,但它是太多麻烦做每一次。我可以编写一个这样做的类,并在每次我想这样做时调用它,但是我想知道是否有一种更简单的方法。
有没有更简单的方法?
发布于 2015-08-25 11:31:48
您真的想要创建一个(不变的) BasicMatrix实例吗?你读过ojAlgo入门维基页面关于在不同矩阵实现之间的选择以及如何实例化它们吗?
有一个类/方法org.ojalgo.array.ArrayUtils#wrapAccess2D(double)可以帮助您,但这取决于您的下一步是.
...or,你为什么不直接打电话给PrimitiveMatrix.FACTORY.rows(myArray);
https://stackoverflow.com/questions/32202406
复制相似问题