Schnelle assoziative arrays oder maps in Matlab
Ich brauchen, um zu bauen ein schnell eins-zu-eins-Zuordnung zwischen zwei großen arrays von zahlen in Matlab. Sollte die Zuordnung nehmen Sie als Eingabe ein element aus einem vordefinierten array, z.B.:
in_range = [-200 2 56 45 ... ];
und ordnen Sie Sie, indem Sie den index in das Vorherige array, auf das entsprechende element aus einem anderen vordefinierten array, z.B.:
out_range = [-10000 0 97 600 ... ];
Beispielsweise im obigen Fall my_map(-200)
ausgeben sollte -10000
, und my_map(45)
ausgeben sollte 600
.
Brauche ich eine Lösung, die
- Können anzeigen von sehr großen arrays (~100K Elemente) relativ effizient.
- Skaliert gut mit den Grenzen der
in_range
undout_range
(d.h. Ihremin
undmax
Werte)
So weit, ich habe das problem gelöst mit Hilfe von Matlab die externe Schnittstelle zu Java mit Java HashMaps, aber ich Frage mich, ob es eine Matlab-native alternative.
Dank!
- mögliche Duplikate von Hash-Tabellen in Matlab
- Die Antworten auf das doppelte (andere als meine) sagen Ihnen alles, was Sie wissen müssen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den neuesten Versionen von Matlab haben hashes. Ich bin mit 2007b und Sie sind nicht verfügbar, so dass ich mit Strukturen, Wann immer ich brauche einen hash. Konvertiere einfach die ganzen zahlen die gültigen Feldnamen mit genvarname.