Как использовать разреженные итераторы Apache commons-math RealVector?

Я хотел бы перебирать ненулевые значения в RealVector. Я заметил, что метод RealVector.sparseIterator() может сделать это:

"Создайте разреженный итератор над вектором, который может пропустить некоторые записи. Пропущенные записи являются либо точными нулями (для плотных реализаций), либо элементами, которые не сохраняются (для реальных разреженных векторов). Никаких гарантий относительно порядка итерации не делается. ."

Однако метод возвращает

Iterator<RealVector.Entry>

объект, где "Entry" является защищенным классом, и поэтому я не могу использовать его вне класса RealVector.

Я что-то неправильно понял? Можно ли как-то перебирать значения в объекте RealVector, не преобразовывая их в double[], потому что вектор очень многомерный и очень разреженный.

Большое спасибо!


person zig    schedule 23.02.2016    source источник
comment
Вы нашли обходной путь?   -  person Juliano ENS    schedule 27.03.2017


Ответы (1)


Это действительно ошибка (см. https://issues.apache.org/jira/browse/MATH-1329). Скорее всего, это будет исправлено в следующем релизе.

person T. Neidhart    schedule 04.06.2016