2008-08-07 12 views
9

Ein Forscher hat eine kleine Simulation in MATLAB erstellt und wir möchten sie anderen zugänglich machen. Mein Plan ist es, die Simulation zu machen, ein paar Dinge aufzuräumen und sie in eine Reihe von Funktionen zu verwandeln. Dann plane ich, es in eine C-Bibliothek zu kompilieren und SWIG zu verwenden, um einen Python-Wrapper zu erstellen. An diesem Punkt sollte ich in der Lage sein, die Simulation von einer kleinen Django-App aus aufzurufen. Zumindest hoffe ich das.Hat jemand Erfahrung beim Erstellen einer gemeinsam genutzten Bibliothek in MATLAB?

Habe ich den richtigen Plan? Hat jemand anderes etwas Ähnliches getan? Können Sie mich wissen lassen, wenn es irgendwelche gravierenden Fallstricke gibt, die mir im Moment nicht bekannt sind?

Antwort

3

Ich werde nicht viel helfen, aber ich erinnere mich, dass ich in der Lage war, eine MATLAB-Simulation in DLL zu verpacken und sie dann von einer Delphi-App aus aufzurufen. Es hat wirklich gut funktioniert.

1

Vielleicht versuchen ctypes anstelle von SWIG. Wenn es als Teil von Python 2.5 enthalten ist, dann muss es gut sein :-)

2

Ich würde auch zuerst ctypes versuchen.

  1. den Matlab-Compiler Verwenden Sie den Code in C
  2. Kompilieren der C-Code in eine DLL zu kompilieren.
  3. Verwenden ctypes zu laden und Code aus dieser DLL aufrufen

Der schwierigste Schritt wahrscheinlich 1 ist, aber wenn Sie bereits Matlab und haben verwendet, um die Matlab-Compiler kennen, sollten Sie keine ernsthaften Probleme mit ihm haben.

5

Eine Sache zu erinnern ist, dass der Matlab-Compiler den Matlab-Code nicht tatsächlich in native Maschinenanweisungen kompiliert. Es wird einfach in eine eigenständige ausführbare Datei oder eine Bibliothek mit einer eigenen Laufzeit-Engine eingebunden, die es ausführt. Du könntest deinen Code ohne Matlab laufen lassen, und du könntest ihn mit anderen Sprachen verbinden, aber Matlab-Code wird immer noch interpretiert, so dass es keine Beschleunigung geben würde.

Verwandte Themen