JAMA setMatrix 文档需要在给定矩阵中设置子矩阵

JAMA setMatrix documentation need to set a submatrix in given matrix

谁能告诉我关于 JAMA MATRIX Package 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。但是未能 add.The 两个输出相同。它们之间没有区别。

这是您遇到的问题的示例。

代码:

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.Only 子矩阵 A1 中存在一行。所以最终行索引也是 2。初始列索引为 0,最终列索引为 2。所以我只是按照指示更改了代码。希望你能理解。更多信息请关注linkJAMA 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