1

谁能告诉我 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第二行和第二列。但添加失败。两个输出相同。他们之间没有区别。

4

1 回答 1

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 矩阵

输出:

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
于 2018-11-07T02:34:38.500 回答