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

标签 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。但添加失败。两个输出是相同的。它们之间没有区别。

最佳答案

这是您的问题的示例。

代码:

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

关于java - JAMA setMatrix 文档需要在给定矩阵中设置子矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49517360/

相关文章:

java - 更改文本字段的值,因为另一个文本字段的值已更改,并且相同但相反,导致错误

matlab - 4x4 矩阵的正交性

java matrix exp(A) 用矩阵计算指数

java - 如何修复 Jama 中的 ArrayIndexOutOfBounds 错误?

用于计算矩阵指数的 C++ 库

java - 如何使用 JAMA(Java 矩阵包)计算矩阵的伪逆?

java- 2天不同时间之间的差异

java - 并发修改异常(Java)

java - Double parseDouble 在添加数字时添加额外的 0

c++ - 多维数据集未显示为多维数据集