webentwicklung-frage-antwort-db.com.de

So erstellen Sie eine ausführbare EXE-Datei aus der .m-Datei

Ich habe mich gefragt, ob es eine Möglichkeit gibt, eine '.exe'-Datei aus' .m'-Datei in matlab zu erstellen, sodass sie auf einer Maschine ausgeführt werden kann, die kein MATLAB hat (wie in C, C++). Ich weiß, dass das Schreiben einer MATLAB-Funktion eine Möglichkeit ist, aber nicht sicher, ob sie in einer Maschine ohne MATLAB ausgeführt werden kann. 

Außerdem möchte ich meinen Code ausblenden und einfach ein Skript erstellen, das von einem Benutzer mit seinen eigenen Dateien ausgeführt werden kann.

26
AP.

Der Matlab Compiler ist der Standardweg, um dies zu tun. mcc ist der Befehl. Die Matlab-Laufzeitumgebung ist zum Ausführen der Programme erforderlich. Ich bin nicht sicher, ob es direkt in die ausführbare Datei integriert werden kann oder nicht.

22
phoebus

Wenn Sie den MATLAB Compiler installiert haben, gibt es eine GUI-Option zum Kompilieren. Versuchen Sie die Eingabe

deploytool

in der Befehlszeile. Mathworks macht einen ziemlich guten Job und dokumentiert, wie man es in diesem Video-Tutorial verwendet: http://www.mathworks.com/products/demos/compiler/deploytool/index.html

Wenn Sie Benutzereingaben wie das Auswählen einer Datei oder eines Verzeichnisses einschließen möchten, lesen Sie auch

uigetfile % or uigetdir if you need every file in a directory

zur Verwendung in Verbindung mit

guide
9
Doresoom

Versuchen:

mcc -m yourfile

Siehe auch help mcc

7
Andreas Bonini

Wenn es sich bei Ihrem Code eher um eine Datenanalyse-Routine (vs. Visualisierung/GUI) handelt, versuchen Sie GNU Octave . Es ist kostenlos und viele seiner Funktionen sind mit MATLAB kompatibel. (Nicht 100%, aber vielleicht 99,5%.)

2
Jason S
mcc -?

erklärt, dass die Syntax für * .exe (Standalone-Anwendung) mit * .m lautet:

 mcc -m <matlabFile.m> 

Zum Beispiel:

mcc -m file.m

erstellt file.exe im aktuellen Verzeichnis.

1

Die "StandAlone" -Methode zum Kompilieren von .m-Dateien (oder -Dateien) erfordert einen Satz von Matlab-Bibliotheksdateien (.dll) auf einer Zielplattform (Nicht-Matlab), um die Ausführung der vom Compiler generierten .exe zu ermöglichen.

Überprüfen Sie die MATLAB-Hauptseite auf ihre Compiler-Produkte und deren Einschränkungen. 

1
Francis

Es war möglich, Matlab mit älteren Versionen von Matlab nach C zu übersetzen. Schauen Sie sich auch andere Tools an, mit denen Matlab ausgestattet ist.

Der neueste Matlab-Code kann als Javas jar oder als .Net-DLL usw. exportiert werden. Sie können dann eine ausführbare Datei für diese Bibliothek schreiben. Die Benutzer müssen eine frei verfügbare Matlab-Runtime installieren.

Wie andere bereits erwähnt, möchten Sie mit mcc/mcc.exe Matlab-Code in C-Code konvertieren.

1
Hamish Grubijan

Ich habe eine Nicht-Matlab-Software zum direkten Kompilieren von M-Dateien ( TMC Compiler ) entwickelt. Hierbei handelt es sich um einen Open-Source-Konverter von M-Files-Projekten in C. Der Compiler erzeugt den C-Code, der mit der bereitgestellten Open-Source-Laufzeitbibliothek verknüpft werden kann, um eine eigenständige Anwendung zu erstellen. Die Bibliothek implementiert eine Reihe von eingebauten Funktionen. Die linearen Algebra-Operationen verwenden LAPACK-Code. Es ist möglich, den Satz der integrierten Funktionen durch eine benutzerdefinierte Implementierung zu erweitern, wie in der Dokumentation beschrieben. 

0
csafonov