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);
MatrixB
是一个 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.
经过一番挖掘,我发现它是由于矩阵覆盖(Matrix B
and C
)引起的。我的代码中的矩阵不能是static
or final
。当矩阵不是静态的时,有什么方法可以使用 Jama 矩阵?在 android studio 中是否有 Jama 的替代品来进行 Matrix 操作?