Necesito una funcionalidad similar a hashmap en Matlab, donde el hashmap asigna vectores a otros vectores, y el número de vectores (que varían en cientos de miles) no se conoce de antemano.Creciendo un Hashmap de vectores en Matlab
Intenté el built-in de Matlab Containers.Map, pero eso no acepta vectores como claves. Luego probé java.util.HashMap:
>> map = java.util.HashMap;
>> map.put(1:3,zeros(2,1));
>> map.get(1:3)
ans =
[]
Así que por alguna razón que no parece funcionar, a pesar de que HashMap de Java debe ser capaz de asignar matrices de matrices.
La otra opción sería mantener dos matrices separadas, una para las claves y otra para los valores, y hacer que crezcan incrementalmente. Pero no quiero realmente hacer eso debido al dolor en Matlab de crecer incrementalmente (incluso con incrementos del tamaño de bloque, etc., por ejemplo, here).
Preguntas: 1. ¿Por qué no funciona el HashMap de Java aquí? 2. ¿Algún otro enfoque?
Gracias.
echa un vistazo a http://stackoverflow.com/questions/1352553/how-can-i-use-matlab-arrays-as-keys-to-the-hashmap-java-objects – Rasman
¿Cuál es el rango de valores en el vectores clave? Si tienen menos de 2^16, podrías convertirlos a 'char' y usar las cuerdas divertidas resultantes como claves. –
Gracias a todos por sus respuestas. Los vectores clave son de hecho menos de 2^16, así que comparé el uso de contenedores.Mapa con las teclas de char y HashMap de Java con claves similares a la publicación a la que Rasman está vinculado: ok, es demasiado código para publicar aquí, así que lo publicaré como respuesta. – Matt