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

时间:2018-03-27 15:51:28

标签: java matrix jama

有谁可以告诉我有关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。但是没有添加。两个输出是相同的。他们之间没有区别。

1 个答案:

答案 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