Ho bisogno di una funzionalità simile all'hashmap in Matlab, dove l'hashmap mappa i vettori ad altri vettori e il numero di vettori (che vanno a centinaia di migliaia) non è noto in anticipo.Coltivare una Hashmap di vettori in Matlab
Ho provato Matlab's integrato Containers.Map, ma che non accetta i vettori come chiavi. Poi ho provato java.util.HashMap:
>> map = java.util.HashMap;
>> map.put(1:3,zeros(2,1));
>> map.get(1:3)
ans =
[]
Così, per qualche ragione che non sembra funzionare, anche se la HashMap Java dovrebbe essere in grado di mappare gli array di array.
L'altra opzione sarebbe quella di mantenere due matrici separate, una per le chiavi e una per i valori, e farle crescere in modo incrementale. Ma non voglio davvero farlo a causa del dolore in Matlab di crescere le cose in modo incrementale (anche con incrementi di dimensioni blocco ecc., Ad esempio here).
Domande: 1. Perché Java HashMap non funziona qui? 2. Altri approcci?
Grazie.
check out http://stackoverflow.com/questions/1352553/how-can-i-use-matlab-arrays-as-keys-to-the-hashmap-java-objects – Rasman
Qual è l'intervallo di valori nel i principali vettori? Se sono sotto i 2^16, puoi semplicemente convertirli in 'char' e usare le stringhe divertenti risultanti come chiavi. –
Grazie a tutti per le vostre risposte. I vettori chiave sono in effetti sotto 2^16, quindi ho confrontato usando contenitori.Mappa con chiavi di caratteri e HashMap di java con tasti simili al post Rasman collegato a: ok è troppo codice per postare qui, quindi lo posterò come risposta. – Matt