Hey Leude, ich habe mal eine grundlegende Frage zu Matlab. Es gibt ja diesen Matlab Compiler der dazu in der Lage ist dll´s oder exe files zu erstelle. Das heisst ich "compiliere" mein m.file und kann daraus eine lauffähige exe Datei erstellen. Auf einem anderen Rechner benötige ich dazu nur die Matlab Runtime Libary um diese exe zu starten. Das entspricht ja dem Vorgang bei normaler DSP oder µC Programmierung. Hier compiliere und bekomme ein make-file das auf meinen controller wird. Meine Frage: Wie ist das, wenn ich in Matlab ein Programm schreibe und lasse dies in Matlab laufen. Läuft das Programm mit bzw. über einen Interpreter oder wie macht Matlab das?
Hallo, du schreibst eigentlich Matlab Skripte und führst diese im Interpreter aus. Kommliliert wird da meines Wissens nichts. Mfg
baja schrieb: > du schreibst eigentlich Matlab Skripte und führst diese im Interpreter > aus. > Kommliliert wird da meines Wissens nichts. Wenn man keine Ahnung hat, einfach mal die Fresse halten. Es gibts auch Matlab-Compiler, die ebend den Code compilieren und Maschinencode draus machen. Benutzt hab ich das aber nie und kann da leider nichts weiter zu sagen.
Ich habe zwar nicht so ganz den Zusammenhang deiner Frage mit dem Matlab-Compiler verstanden, aber ich werde trotzdem mal versuchen deine Frage zu beantworten. Skripte oder auch Funktionen, die du als m-Files geschrieben hast, werden interpretiert. Allerdings hat Matlab einen Just-in-time-Compiler, was im Vergleich zu Octave oder Scilab erhebliche Geschwindigkeitsvorteile bringt. Aber das, was der JIT macht, hat nicht so sehr viel mit einem "normalen" Compiler zu tun. Etwas anders sieht das Ganze wieder aus, wenn du Simulink benutzt. Da gibt es ja auch die Möglichkeit m-File s-Functions zu schreiben. Diese werden dann mit deinem eigenen Compiler (kann man auswählen z.B. gcc, vc++, ...) kompiliert und in mex-Files gepackt. (im Prinzip wie dlls) Um viellicht doch noch ein Mal auf den Matlab-Compiler zurückzukommen: Das ist eine extra Toolbox, die nicht ganz billig ist. Das Ziel ist eben genau, dass du von Matlab unabhängige Bibliotheken oder Programme erstellen kannst. Der hat mit dem normalen Matlab aber nichts zu tun.
Klaus schrieb: > baja schrieb: >> du schreibst eigentlich Matlab Skripte und führst diese im Interpreter >> aus. >> Kommliliert wird da meines Wissens nichts. > > Wenn man keine Ahnung hat, einfach mal die Fresse halten. Es gibts auch > Matlab-Compiler, die ebend den Code compilieren und Maschinencode draus > machen. > > Benutzt hab ich das aber nie und kann da leider nichts weiter zu sagen. Versteh ich das jetzt richtig? - Du hast auch keine Ahnung und hältst auch nicht die Fresse???
Der MATLAB Compiler ist in der Tat nur ein kleiner Umbau um die m-Files herum. Richtig kompiliert wird da nichts. Wenn du wirklich C-Code aus deinem MATLAB-Code haben möchtest, musst du dir den RealTimeWorkshop mal anschauen. Damit kannst du (mit relativ großen Einschränkungen) den MATLAB-Code kompilieren. Ich habe das in meiner Bachelorarbeit benutzt... Ist im Hinblick auf Optimierung aber nicht der Hit. MfG Marius
Auch wenn manche die Frage nicht verstanden haben, wurde sie mir dennoch beantwortet :-) Ich weiß das der Matlab Compiler ein Extra "Tool" darstellt. Ich habe auch beides zur Verfügung. Ich wollte nur wissen, ob ich das alles richtig verstanden habe. Da ich bisher immer den normalen Ablauf beim programmieren von µC´s oder DSP kenne. Da wird geschrieben und danach übersetzt/compiliert. In Matlab wird es eben interpretiert und das war mir neu. Danke für die Aufklärung.
Standardmässig werden m-files als Interpretersprache gehandhabt - manche Matlabfunktionen sind in Maschinencode implememntiert. (Funktion emlmex) (bei Matlab dabei) Es gibt bei Matlab standardmässig die Möglichkeit embedded Matlabcode in Maschinencode übersetzen zu lassen. Aus der m-file Interpretersprache wird dann ein Programm in Maschinencode + Interface für Matlab. Leider läuft der Code nur falls Matlab installiert ist Auf den C-Code hat man keinen Zugriff - man kannn aber z.B. den Compiler auswählen (bei mir gcc) Man muss die Funktion als "embedded" Matlabcode programmieren (fast so ähnlich wie normal). (Matlab Compiler) Extra Toolbox - man kann jeden Matlabcode compilieren lassen und Standaloneanwendungen generieren. (Realtime Workshop) Extra Toolbox - Man kann aus Simulinkplaenen C Code erzeugen und aus (embedded) Matlabcode - man hat Zugriff auf den C Code.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.