【发布时间】:2019-11-25 02:12:40
【问题描述】:
Jama 矩阵在我的代码(矩阵计算类)中定义如下:
private Matrix A;
private Matrix B;
private Matrix C;
矩阵A初始化如下:
A = new Matrix(2,2);
A.set(0,0,1.5);
A.set(0,1,0.0);
A.set(1,0,0.0);
A.set(1,1,1.5);
矩阵B 是一个 2*2 矩阵,初始化为单位矩阵,并由来自MainActivity 类的下一个相同大小的矩阵每秒更新一次。
矩阵C被初始化和计算如下:
if(C!=null)
C = A.plus(C.times(B));
else {
C = new Matrix(2,2);
C.set(0,0,1);
C.set(0,1,0.0);
C.set(1,0,0.0);
C.set(1,1,1);
这里,矩阵计算类由MainActivity类每秒调用一次,矩阵B相应地更新。但是,代码仅在第一次迭代时运行良好,稍后会抛出错误,如下所示:
java.lang.IllegalArgumentException: Matrix inner dimensions must agree.
经过一番挖掘,我发现这是由于矩阵覆盖(矩阵B和C)引起的。我的代码中的矩阵不能是static 或final。当矩阵不是静态的时,有什么方法可以使用 Jama 矩阵? android studio 中的 Matrix 操作有没有 Jama 的替代品?
【问题讨论】:
-
这与矩阵是静态还是最终无关。
标签: android android-studio matrix jama