|
|
|
Matlab-function aus mex-function aufrufen |
|
| Borste |

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.06.2017, 11:54
Titel: Matlab-function aus mex-function aufrufen
|
 |
Moin moin,
ich habe folgende Frage: Ist es theoretisch möglich, aus einer mex-function eine Matlab-function aufzurufen? Wenn ich den folgenden Code in eine mex-function umwandeln möchte, bekomme ich nämlich einen Fehler. Habe dazu im Netz bisher nichts gefunden.
Vielen Dank schonmal
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 06.06.2017, 13:58
Titel:
|
 |
Hallo,
welchen Fehler bekommst du?
Versuchst du es genau so? Wenn nicht, wie dann?
Mir ist nicht bekannt, dass es eine Funktion call_matlabfunction gäbe. Insofern kein Wunder, dass das eine Fehlermeldung gibt. Zumal man ja auch dazu sagen müsste, welche?
Wenn, dann könnte man die MATLAB Engine API nutzen.
https://www.mathworks.com/help/matl.....and-fortran-programs.html
Die Frage ist aber, ob das wirklich so sinnvoll ist. Denkbare Alternativen wären, dass man den MEX Code in zwei Dateien aufspaltet und dazwischen ganz normal innerhalb von MATLAB einen Aufruf macht.
Falls bestehender MATLAB-Code bzw. Teile davon in C umgeschrieben werden sollen, um das zu beschleunigen, möchte ich auch auf die Möglichkeit hinweisen, mit MATLAB Coder automatisch MEX-Files zu generieren.
Grüße,
Harald
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.06.2017, 16:14
Titel:
|
 |
Ich hätte vielleicht dazuschreiben sollen, dass die Funktion call_matlabfunction(a,b) eine von mir selbst geschriebene Funktion ist, die als Beispiel dienen sollte:
Es geht einfach darum, aus meinem mex-file heraus eine Matlabfunction aufzurufen, die sich nicht in ein mex-file umwanden lässt und daher mit dem Matlabcompiler berechnet werden soll.
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 06.06.2017, 19:40
Titel:
|
 |
Hallo,
falls es darum geht, MATLAB-Code in MEX-Files umzuwandeln, empfehle ich wie gesagt MATLAB Coder. Funktionen, die nicht für Codegenerierung unterstützt werden, können dann als extrinsisch definiert werden.
Andernfalls wie gesagt die Engine API.
Eine einfachere Möglichkeit sehe ich nicht. In deinem Beispiel würde man ja (trotz des Namens) davon ausgehen, dass call_matlabfunction eine C-Funktion ist.
Grüße,
Harald
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.06.2017, 13:16
Titel:
|
 |
nene, wie man MATLAB-files in MEX-files umwandelt ist mir bewusst.
Wollte nur mal wissen, ob es eine einfache und vor allem schnelle Möglichkeit gibt, ein MEX-file auszuführen und in diesem MEX-file eine normales M-file (MATLAB-function) aufzurufen. Man kann ein M-file ausführen und darin MEX-files aufrufen, nur umgekehrt habe ich es bisher nicht umsetzen können. Daher meine Frage und diese simple Beispielfunktion "call_matlabfunction".
Also nochmal einfach ausgedrück, wie kann ich ein MEX-file ausführen und in diesem MEX-file ander M-files (Unterfunktionen) aufrufen?
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.06.2017, 15:54
Titel:
|
 |
Ich glaube mexCallMATLAB ist die function, die ich suche.. Jetzt muss ich nur noch herausfinden, wie die angewendet wird : )
Besten Dank für die Hinweise!
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.06.2017, 18:34
Titel:
|
 |
Hallo,
| Zitat: |
| Also nochmal einfach ausgedrück, wie kann ich ein MEX-file ausführen und in diesem MEX-file ander M-files (Unterfunktionen) aufrufen? |
Meine Antwort auf die Frage war die MATLAB Engine API.
mexCallMATLAB scheint eine einfachere Möglichkeit zu sein. Die Beispiele sollten bei der Anwendung helfen.
Grüße,
Harald
|
|
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|