我使用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和留言板报告错误和功能请求。这些会立即给我发送一条消息,但是谁知道我什么时候会在这里看到它。

09-11 18:43