Verfasst am: 03.12.2014, 22:13
Titel: in java an einen Rückgabewert aus matlab rankommen
Puh die ahnungslosigkeit nimmt kein Ende fast am Ende meines Projekts
hallo nochmal liebe forum mitglieder
in den letzten posts von mir waren meine fragen wie ich einen bestimmten wert in matlb zurueck geben kann und warum ich es nicht schaffe mit dem deploytool meine matlab klasse in java einzu bauen. Dies habe ich nun dank eurer Hilfe geschafft und ich habe ich bereits die neue .jar datei in java eingebunden und ein objekt der matlab klasse in meinem Java projekt erstellt.
Es ist mir bereits gelungen, wenn ich in meinem Programm auf einen Button klicke, dass der Matlab algorithmus ausgeführt wird. In diesem Algorithmus geht es darum ein bestimmtes objekt via Template matching zu finden.
Wenn das objekt gefunden ist, wird mir im matlab command window eine 0 zurueck gegeben und falls nicht eine 1. also " ans 1 " oder "ans 0 "
diese beiden werte werden mir aber NUR zurück gegeben, wenn ich den algorithmus in matlab ausführe. In der Java console leider nicht und ich weiss nicht warum ( vll falsche parameter übergeben , aber ich weiss auch nach suchen in der api immer noch nicht welche parameter in meinen fall überhaupt übergeben werden muesstn ). Diese werte ( 0 oder 1) brauche ich aber in java auf jeden fall irgendwie.
Ich präsentiere ich nun mal meinen matlab code, dann was er mir in matlab im command window anzeigt und danach zeige ich euch auch kurz einen kleinen teil des relevanten java codes falls das erlaubt ist. dies ist mein matlab code
surfie
Warning: Imageis too big to fit on screen; displaying at 67%
> In imuitools\private\initSize at 71
In imshow at 282
In surfie at 21 Warning: Imageis too big to fit on screen; displaying at 67%
> In imuitools\private\initSize at 71
In imshow at 282
In surfie at 27 Warning: Imageis too big to fit on screen; displaying at 50%
> In imuitools\private\initSize at 71
In imshow at 282
In showMatchedFeatures at 119
In surfie at 41
in der zeile result []= s.surfie(1); habe ich einfach mal eine 1 hinein geschrieben weil er mir damit keine fehler angezeigt hat. vll liegt da auch schon de fehler
in der java console wird mir das gleiche wie in der matlab console ausgeben BIS auf der werte die ich eig. brauche =(
also nachher will ich in java dann sagen
wenn Wert = 1 mache dies
wenn wert = 0 mache das
ich hoffe hier ist irgendwer der sich damit ein bisschen auskennt
Eingabeargument??? ist nicht das Bild was ich mit der webcam schiesse so zu sagen die eingabe? dann läuft der code ja durch und am ende bekomm ich in matlab wenn das bild gefunden wurde die 0 und falls nich die 1 !
in java gibt er mir die 0 oder 1 aber immer noch nich zurueck =( da steht in der konsole folgendes
Code:
Warning: Imageis too big to fit on screen; displaying at 67%
[> In imuitools\private\initSize at 71
In imshow at 282
In surfie at 21] Warning: Imageis too big to fit on screen; displaying at 67%
[> In imuitools\private\initSize at 71
In imshow at 282
In surfie at 27] Warning: Imageis too big to fit on screen; displaying at 50%
[> In imuitools\private\initSize at 71
In imshow at 282
In showMatchedFeatures at 119
In surfie at 41]
in matlab gebe ich ja so zu sagen die variable "status" aus der estimategeometractransform methode aus bzw zurück. diese status variable muss mir nur noch in java zurueck ggeben werden =(
Ja ich habe versucht mir result in der k0ns0le ausgeben zu lassen mit system.out.println(result); aber da passier leider gar nichts ! ich versteh nich wieso er mir in java die ganzen warnings anzeigeigt also das selbe wie in matlab nur OHNE den wert den ich brauche =( ich mein ich MATLAB gibt er mir diesen wert =(
nur OHNE den wert den ich brauche =( ich mein ich MATLAB gibt er mir diesen wert =(
Ja, weil beim Ausführen in MATLAB sofern nicht anders angegeben implizit davon ausgegangen wird, dass du ein Rückgabeargument zurückhaben möchtest. In Java muss man es sich explizit zurückholen.
Welchen Datentyp hat result denn? Vielleicht musst du auf den richtigen Datentyp casten. Letztlich wirst du nicht vermeiden können, mal ausführlich die Doku zu lesen...
hätte es heisen muessen ich bekomme den wert nun zurueck =) vielen dank
nochmal
david
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.