Ich habe eine Funktion, die ich als eine MATLAB-Mex-Datei schreibe. Diese Funktion muss MEX verwenden, da sie mit einer Hardware in C++ verbunden ist. Es gibt viele Optionen, die eingestellt werden können, und ich möchte eine containers.Map
verwenden, um sie zu übergeben. (Ansonsten würde ich eine große Anzahl von Funktionsparametern benötigen.)Gibt es eine Möglichkeit, Werte aus einer Map in einer MATLAB-Mex-Datei zu erhalten?
Ich sehe keine Möglichkeit, auf den Map-Operator zuzugreifen, der Werte mithilfe von Schlüsseln abruft. Ich habe versucht, mexCallMATLAB
, aber meine verschiedenen Ansätze fehlgeschlagen. Gibt es eine Möglichkeit, dies zu tun?
Ich dachte, vielleicht auf Karte Operator subsref
implementiert, aber dies nicht gelingt in MATLAB, so vermute ich, das Äquivalent in einer mex-Datei fehlschlagen würde, auch:
dict = containers.Map('foo', 3)
subsref(dict, struct('type', '.', 'subs', 'foo'))
Können Sie sich eine Struktur verwenden? Dann könnten Sie 'mxGetField' und andere verwandte Funktionen verwenden. – horchler
Vielleicht - ich untersuche das jetzt. –
Ja - das funktioniert für mich. Vielen Dank! Ich denke, ich werde diese Frage offen lassen, da jemand vielleicht noch eine Antwort auf Maps haben möchte. –