Verfasst am: 13.10.2011, 14:02
Titel: Erstellen einer Mex-File
Hey,
zu erst möchte ich um entschuldigung bitten, da ich ja eigentlich einen Account hier habe, mich jedoch nicht auf der Arbeit in Foren oder sonstigen Seiten anmelden darf/kann.
Nun zu meinem Problem:
Ich bin recht neu in Sachen Mex-Erstellung und nutze diese Seite um mich schlauer zu machen: http://www.mathworks.nl/support/tech-notes/1600/1605.html. Meine Frage ist, ob es möglich ist einen C-Code in Matlab zu nutzen ohne eine mex-file erstellen zu müssen?
Falls nicht: Ich möchte einen C-Code übernehmen (ich versuceh eine TCP-Kommunikation zwischen Matlab und Simulink zu erstellen). Muss ich generell am C-code etwas ändern oder kann der so, wie vorhanden übernommen werden? z.B. mit den Befehlen printf usw.. Oder muss ich mein Programm von Grund auf neu strukturieren und der Erstellung einer Mex-file anpassen?
Verfasst am: 13.10.2011, 14:37
Titel: Re: Erstellen einer Mex-File
Hallo CrashBall89,
Zitat:
zu erst möchte ich um entschuldigung bitten, da ich ja eigentlich einen Account hier habe, mich jedoch nicht auf der Arbeit in Foren oder sonstigen Seiten anmelden darf/kann.
Das verstehe ich nicht. Benötigst Du die Frage für Deine Arbeit? Wieso sollte Dein Arbeitgeber dann etwas dagegen haben? Hat er etwas dagegen, dass du Dich in Interhetforen aufhälst? Warum machst Du es dann trotzdem?
Ein C-Mex-File ist ein C-File, das eine Schnittstelle zu Matlab hat. Diese Schnittstelle ist die mexFunction. Sie kümmert sich im Idealfall nur um die richtige Anzahl und Typen der Inputs, konvertiert sie in die entsprechenden C-Arrays und ruft dann die eigentliche Berechnung in C auf. Danach werden die Ausgaben wieder in Matlab-Variablen konvertiert.
PRINTF sollte in Mex-files als mexPrintf verwendet werden, weil die Ausgabe ins Command-Windowdabei besser koordiniert wird.
Gruß, Jan
CrashBall89
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 13.10.2011, 14:49
Titel:
Hey Jan,
vielen Dank für deine rasche Antwort.
Das hat was mit Cookies und solchen Sachen zu tun. In Foren darf ich mich aufhalten und natürlich auch als Gast schreiben, aber wenn es um das Thema "Anmelden" geht, sehen die schwarz.
Zum Thema:
So habe ich das auch verstanden. d.h. ich müsste praktisch meinen ganzen C-Code in die mexFunction einbetten. Jedoch sind dann Syntaxfehler drin, wenn ich mehrere void Funktionen in die mexFunktion einbinde. Abgesehen von dem mexPrintf, sind sonst alle C-Befehle verwendbar? Steuer ich mit der mexFunktion die sowohl Inputs als auch Outputs?
MfG,
CrashBall89
CrashBall89
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 13.10.2011, 14:56
Titel:
Sorry für den Doppelpost.
Ich weiß nicht ob du überhaupt eine Ahnung von TCP Socket-Kommunikation hast, aber vllt. hilft dir das weiter, zu verstehen, wo ich hänge.
Cookies bekommst Du als Gast doch auch. Aber ich weiß, dass die Einschränkungen bei Arbeitgebern nicht unbedingt sinnvoll sind.
Es gibt einige Mex-Implementationen eines Network-Sockets. Es lohnt sich Google nach "Matab winsock Mex" zu fragen.
Ich habe übrigens keinen Doppel-Post gesehen. Doppel-Posts heißen Fragem die in mehrern Foren oder zumindest Unterkategorien gleichzeit erscheinen. Wenn man dann (wie ich) in mehreren Foren unterwegs ist, verliert man den Überblick, welche Antwort nun eigentlich schon gegeben wurde.
Gruß, Jan
CrashBall89
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.10.2011, 08:25
Titel:
Hey Jan,
dass es so eine Implementation gibt, wusste ich nicht. Ich werde dann mal im Internet danach Recherchieren. Vielen Dank!
MfG
CrashBall89
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.