Ошибка при назначении значения для матричного элемента с помощью уравнения

У меня есть несколько простых строк кода в Java с использованием уравнения ejml следующим образом:

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);

И это работает. Это ошибка в этой библиотеке?

1 ответ

Решение

Это ошибка. Внутренне проверка границ выполнялась col,row вместо row,col.

Последний код GitHub имеет исправление. Вы также можете проверить следующее SHA.

ec2dffbabc38c1e86f1ef58da2553cec9287b0f3

Задавать вопросы о Stackru - это хорошо, так как все больше людей видят это. Однако, пожалуйста, сообщайте об ошибках и запросах функций, используя github и доску объявлений. Они сразу отправят мне сообщение, но кто знает, когда я увижу его здесь.

Другие вопросы по тегам