mikrocontroller.net

Forum: PC-Programmierung Matlab Dateien in Octave nutzen


Autor: olo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/MatlabFemse...

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!

Autor: olo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute weis wirklich keiner Rat?

Autor: Base64 Urandom (6964fcd710b8d77)
Datum:

Bewertung
0 lesenswert
nicht 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/interprete...

Autor: olo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: olo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: cpp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: olo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: olo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Walter Tarpan (nicolas)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.