我使用ejml公式在Java中编写了几行简单的代码,如下所示:
eq.process("T = zeros(2,3)");
eq.process("T(1,1)=10");
eq.process("T(1,0)=1");
eq.process("T(1,2)=8");
最后一行不起作用,抛出错误“子矩阵超出范围。较低范围”。
显然,矩阵T的大小为2x3,索引从0开始,因此T(1,2)有效。
我也尝试转换为原始矩阵,如下所示:
DenseMatrix64F m=eq.lookupMatrix("T");
m.set(1, 2, 7);
而且有效。
这是该库中的错误吗?
最佳答案
那是一个错误。在内部,边界检查是通过col,row而不是row,col完成的。
最新的github代码已修复。您也可以签出关注SHA。
ec2dffbabc38c1e86f1ef58da2553cec9287b0f3
因为更多的人看到了,所以在Stackoverflow上提问是可以的。但是,请使用github和留言板报告错误和功能请求。这些会立即给我发送一条消息,但是谁知道我什么时候会在这里看到它。