Forum: PC-Programmierung Matlab Dateien in Octave nutzen


von olo (Gast)


Lesenswert?

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!

von olo (Gast)


Lesenswert?

Hallo Leute weis wirklich keiner Rat?

von Base64 U. (6964fcd710b8d77)


Lesenswert?

> 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

von olo (Gast)


Lesenswert?

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.

von olo (Gast)


Lesenswert?

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!

von cpp (Gast)


Lesenswert?

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)

von olo (Gast)


Lesenswert?

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)

von olo (Gast)


Lesenswert?

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?

von Walter T. (nicolas)


Lesenswert?

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
Noch kein Account? Hier anmelden.