有谁可以告诉我有关JAMA MATRIX包的setMatrix
如何工作?请不要建议我查看文档。我几次搜索文档,但没有得到它的工作原理。我有代码,我想用JAMA MATRIX包设置一个具有所需位置的子矩阵。
Matrix A= new Matrix(new double[][]{{2.0,3.0,5.0},{1.0,0.0,3.0},{0.0,1.0,1.0}});
A.print(9,6);
Matrix A1= new Matrix(new double[][]{{1.0,2.0,2.0}});
int []A2=new int[]{2};
int []A3=new int[]{2};
A.setMatrix(A2, A3, A1);
A.print(9,6);
我想在第二行和第二列添加A1
。但是没有添加。两个输出是相同的。他们之间没有区别。
答案 0 :(得分:1)
这是您的问题的一个例子。
代码:
public class M1test {
public static void main(String args[]){
Matrix A= new Matrix(new double[][]{{2.0,3.0,5.0},{1.0,0.0,3.0},{0.0,1.0,1.0}});
A.print(9,6);
Matrix A1= new Matrix(new double[][]{{1.0,2.0,2.0}});
A.setMatrix(2,2,0,2,A1);
A.print(9,6);
}
}
说明
SetMatrix实际上用于设置子矩阵。所以在这里我想用A1代替矩阵A的最后一行。因此,A1是一个子矩阵,将在A中设置。
现在按照文档
public void setMatrix(int i0,
int i1,
int j0,
int j1,
Matrix X)
Set a submatrix.
Parameters:
i0 - Initial row index
i1 - Final row index
j0 - Initial column index
j1 - Final column index
X - A(i0:i1,j0:j1)
在我的代码中,我想替换最后一行。由于A为3 * 3矩阵,因此最后一行索引为2。因此,初始行索引为2。子矩阵A1中仅存在一行。所以最终行的索引也是2。初始列的索引是0,最终列的索引是2。所以我只是按照指示更改了代码。希望你能理解。有关更多信息,请点击链接JAMA Matrix
输出:
2.000000 3.000000 5.000000
1.000000 0.000000 3.000000
0.000000 1.000000 1.000000
2.000000 3.000000 5.000000
1.000000 0.000000 3.000000
1.000000 2.000000 2.000000