Pregunta

Estoy tratando de aplicar un filtro Kalman a las lecturas del sensor utilizando Java, pero la biblioteca de manipulación de Matrix que estoy usando es darme un error de montaje.Entonces, ¿alguien sabe de una biblioteca de manipulación de matriz para la JVM con mejores características de asignación de memoria?

Parecería que este: http://code.google.com / p / eficiente-java-matrix-biblioteca / - es "eficiente" solo en nombre.El conjunto de datos tiene 9424 filas por 2 columnas, todos los valores son dobles (marca de tiempo y una dimensión de 3 en lecturas de un sensor).

Muchas gracias, chicos!

¿Fue útil?

Solución

1) El filtro Kalman no debe requerir cantidades de escala masivas y no lineales de memoria: solo está calculando las estimaciones basadas en 2 valores: el valor inicial y el valor anterior. Por lo tanto, debe esperar que la cantidad de memoria que necesite debe ser proporcional a la cantidad total de puntos de datos. Ver: http://rsbweb.nih.gov/ij/plugins/kalman.html

2) Cambiar a los flotadores 1/2 La memoria requerida para su cálculo. Eso probablemente será insignificante en su caso: asumo que si el conjunto de datos se bloquea debido a la memoria, está ejecutando su JVM con una cantidad muy pequeña de memoria o tiene un conjunto de datos masivos.

3) Si realmente tiene un conjunto de datos grande (> 1g) y la mitad, es importante, la biblioteca que mencionó puede refactorarse solo para usar flotadores.

4) Para una comparación de las bibliotecas de matriz de Java, puede pagar http : //code.google.com/p/java-matrix-benchmark/wiki/memoryResults_2012_02 --- La pisada de memoria más baja Las libs son Ojalgo, Ejml y Colt. He tenido una excelente suerte con el potro para cálculos a gran escala, pero no estoy seguro de cuál implementa el método Kalaman.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top