【问题标题】:JAMA setMatrix documentation need to set a submatrix in given matrixJAMA setMatrix 文档需要在给定矩阵中设置子矩阵
【发布时间】:2018-03-27 15:51:27
【问题描述】:

谁能告诉我关于 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。但添加失败。两个输出相同。它们之间没有区别。

【问题讨论】:

    标签: java matrix jama


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多