Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Aus C-Programm auf Matlab Engine zugreifen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.11.2006, 14:40 Uhr
~Gockelhahn
Gast


Hallo zusammen,

ich möchte gerne aus einem autonomen C-Programm auf die Matlab-Engine zugreifen (z.B. für Visualisierungszwecke). Habe schon lange gegoogelt, hab’s aber bis jetzt nicht hinbekommen. Kann mir jemand helfen, wie ich dabei vorgehen muss? Ausgehen tue ich von dem Beispiel-Programm, dass im Matlab-Verzeichnis unter extern/examples/engmat zu finden ist. Ich möchte die Windows-Version benutzen, daher engwindemo.c. Zur Zeit arbeite ich mit der Studentenversion Release 13.

Zu meinem bisherigen Verständnis:
- Innerhalb des C-Programms bindet man die Header-Datei „engine.h“ ein. Muss man diese noch für die eigene Maschine anpassen, damit erkannt wird, wo sich Matlab befindet?
- Welche engine.h muss man einbinden, z.B. diese hier?
www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=4398&objectType=FILE
- Wo muss ich die Header-Datei auf der Platte hinkopieren?

Wenn man das C-Programm kompiliert, dann müsste es doch eigentlich funktionieren? Oder muss man weitere Schritte durchführen?

Thx,
Gockelhahn
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.11.2006, 18:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

- Innerhalb des C-Programms bindet man die Header-Datei „engine.h“ ein. Muss man diese noch für die eigene Maschine anpassen, damit erkannt wird, wo sich Matlab befindet?


Nein üblicherweise gibt du deiner Entwicklgunsumgebung die Pfade an in der diese nach "Dateien" suchen soll.

Dort fügst du für die Headerdatein das Includeverzeichnis hinzu und für die lib's/dll's das lib-verzeichnis
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.11.2006, 10:28 Uhr
~Gockelhahn
Gast


Super, das hat funktioniert. Ich bekomme allerdings jetzt beim Kompilieren in Dev-C++ eine Fehlermeldung. Irgendetwas geht beim Linken nicht richtig. Wie kann man das Problem lösen?

Ausschnitt:
[linker error] undefined reference to 'engOpen'
...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.11.2006, 11:55 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


du musst dem linker noch die lib mit "übergeben"... Wie das in Dev C++ geht weiß ich nicht... aber es wird irgendwo eine einstellung/fensterchen geben in denen die ganzen libs sind die er mit linken soll, da musst du dann noch die für matlab hinzufügen...

meist geht es auch wenn du einfach die lib zu den sourcen mit hinzufügst...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.11.2006 um 11:56 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.11.2006, 15:47 Uhr
~Gockelhahn
Gast


Es ergeben sich jetzt zwei Dinge:

1. Man kann nur Bibliotheken als .a in Dev-C++ einbinden. Kann man die libs aus Matlab konvertieren und als .a nutzen oder ist man auf eine andere Entwicklungsumgebung angewiesen?

2. Welche libs werden benötigt? Es gibt in extern/lib/win32 insgesamt 5 verschiedene Ordner mit Libs (borland, digital, Icc, microsoft, watcom). In den entsprechenden Unterverzeichnissen weitere Versionsmöglichkeiten, z.B. microsoft: msvc50, msvc60 und msvc70.

Danke,
Gockelhahn
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.11.2006, 16:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


mmh welche du da brauchst (oder ob du erst eine konvertieren musst) kann ich dir nicht sagen. Bin in der komfortablen Lage Visual Studio zu besitzen und da gibt es immer was

Einfach mal ausprobieren obs mit einer der mitgelieferten klappt... (Ich würde als erst mal msvc60 oder 70 versuchen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.11.2006, 16:53 Uhr
~Gockelhahn
Gast


Ich habe Microsoft Visual C++ 2005 Express Edition auf meinem Rechner. Mit welcher Version von VS arbeitest du? Wie kann man dort die libs einbinden?

Viele Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.11.2006, 17:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Bei mir trag ich die entsprechenden Libs unter Projekt->Settings->Link ein...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: