Hallo zusammen, ich möchte eine FEM Bibliothek( sie heist FEMSET) einsetzen die man in Matlab nutzen kann. Allerdings möchte ich Octave nutzen weil es kostenlos ist und eine ausgezeichnete kompatibilität und Alternative zu Matlab besitzt/darstellt. Das Problem ist, dass ich nicht so richtig weis welche Dateien ich hierfür benutzen muss und wie ich sie nutzen muss. Hier ist die Seite mit dem Einführungsbeispiel welches ich gerne ausführen will: http://www.rzbt.haw-hamburg.de/dankert/MatlabFemset/Matlab-Femset__Einfuhrungsbeis/matlab-femset__einfuhrungsbeis.html Und hier die Hauptseite, die ganz grob erklärt was FEMSET ist: http://www.rzbt.haw-hamburg.de/dankert/MatlabFemset/ Ich wäre über Hilfestellung sehr erfreut!
> Der komplette FEM-Algorithmus (Berechnung der Knotenverformungen eines FEM-Modells) wird in der FEMSET-C-Funktion femalg_f.c realisiert, für die die Matlab-Interface-Funktion femalg_m.c (mexFunction) zur Verfügung steht. Diese mexFunction wurde mit mex in eine DLL femalg_m.dll überführt. Bei einem Aufruf von femalg_m aus einem Matlab-Script (wie eine “normale” Matlab-Function) wird diese DLL eingebunden. Jo, sieht so aus als dürftest du dir das selbst portieren/kompilieren nachdem octave keine Freude mit dlls haben wird, welche füt matlab gedacht sind.... https://www.gnu.org/software/octave/doc/interpreter/External-Code-Interface.html
Base64 U. schrieb: > Jo, sieht so aus als dürftest du dir das selbst portieren/kompilieren Muss ich mir wohl doch eine Matlab Studilizens kaufen... Danke für den Link, aber so tief will ich mich dann doch nicht in Octave einarbeiten.
So ich nochmal. Laut der Aussage deds Profs oben genannter Website benötigt man in Matlab nur die Dll Datei um den Algorithmus zu starten. Wie bekomme ich aber die Dll zum laufen? Muss sie in ein bestimmtes Verzeichnis rein oder muss ich sie einbinden? Ich verwende jetzt Matlab und nicht mehr octave!
Weis wirklich niemand wie man in Matlab eine DLL nutzt?? Die DLL wurde mittels Mexfiles erzeugt und der Autor schreibt auf seiner Website es wird nichts weiter als diese DLL benötigt um die Algorithmusfunktion aufzurufen. Wenn ich diese aber aufrufe bekomme ich die Fehlermeldung: "Error in EinfBsp1 (line 15) [succ uv] = femalg_m(xy , km , ep , kr , bk)" femalg_m(...) ist die gewünschte Funktion (femalg_m.dll)
Weis wirklich niemand wie man in Matlab eine DLL nutzt?? Die DLL wurde mittels Mexfiles erzeugt und der Autor schreibt auf seiner Website es wird nichts weiter als diese DLL benötigt um die Algorithmusfunktion aufzurufen. Wenn ich diese aber aufrufe bekomme ich die Fehlermeldung: "Error in EinfBsp1 (line 15) [succ uv] = femalg_m(xy , km , ep , kr , bk)" femalg_m(...) ist die gewünschte Funktion (femalg_m.dll)
Ah sorry, jetzt mal die komplette Fehlermeldung: Trial>> EinfBsp1 Undefined function or variable 'femalg_m'. Error in EinfBsp1 (line 15) [succ uv] = femalg_m (xy , km , ep , kr , bk) Ich habe die Datei "EinfBsp1.m" mit run gestartet und diese ruft die Funktion femalg_m(...) auf aber das klappt nicht. An was kann das liegen?
Mex-Files (Endung .mex, .mexW64, die Linux-Endung habe ich gerade nicht im Kopf) nutzt man einfach, indem man die Datei irgendwo in den Matlab Suchpfad kopiert. Natürlich muß die Mex-Version zum Betriebssystem und zur Matlab-Version (Also 32-, 64-Bit, Windows oder Linux) passen. 64-Bit-Mex-Dateien lasen sich nicht unter einem 32-Bit-Matlab nutzen um umgekehrt. Mex-Dateien sind DLL mit ein paar Header-Infos, damit Matlab sie unmittelbar laden kann. Matlab kann auch andere DLLs dynamisch linken (loaddll), aber das ist eine recht aufwendige Sache. Kannst Du die Mex-Funktion denn normal unter Matlab aufrufen, ohne das M-Script?
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.