G
Gelöschtes Mitglied 16444
Guest
Moin HABO!
Ich habe hier ein etwas komplexeres MATLAB Skript, das es frei im Netz zum Download gibt und das ich gerne in meiner C++ Applikation nutzen würde. Also habe ich mir mit MATLAB eine Bibliothek erstellen lassen und versuche diese nun in mein Programm einzubinden. So weit so gut.
Nun gibt es in dem MATLAB Code allerdings eine Funktion, die zwar Parameter besitzt, die ich beim Aufruf allerdings nicht angeben darf.
Der Aufruf unter MATLAB, den ich erreichen will, sieht so aus:
Die Signatur der MATLAB-Funktion sparset so:
Und die Signatur der C++ Funktion, die mir MATLAB erzeugt so:
Das Problem vor dem ich nun stehe ist, wie ich die Funktion aufrufen muss, damit es dem MATLAB Code entspricht. In der Funktion wird nämlich ein Fehler geschmissen, wenn length(arg) > 0 ist, was aber bei allen Varianten, die ich versucht habe der Fall zu sein scheint.
Z.B.:
Ich habe leider keine brauchbare Doku gefunden, in der der ganze Umgang mit solchen generierten Libraries beschrieben wird, deswegen ist bisher alles trial&error mit Hilfe einiger funktionierender Beispiele gewesen 
Hat jemand schon mal intensiver mit von MATLAB generierten C/C++ Bibliotheken gearbeitet und kann mir hier (mit einem Link) weiterhelfen?
Ich habe hier ein etwas komplexeres MATLAB Skript, das es frei im Netz zum Download gibt und das ich gerne in meiner C++ Applikation nutzen würde. Also habe ich mir mit MATLAB eine Bibliothek erstellen lassen und versuche diese nun in mein Programm einzubinden. So weit so gut.
Nun gibt es in dem MATLAB Code allerdings eine Funktion, die zwar Parameter besitzt, die ich beim Aufruf allerdings nicht angeben darf.
Der Aufruf unter MATLAB, den ich erreichen will, sieht so aus:
Code:
H=sc(sparset,lparset(100),aparset);
Code:
function spar=sparset(arg)
Code:
extern LIB_libsc_CPP_API void MW_CALL_CONV sparset(int nargout
, mwArray& spar
, const mwArray& arg);
Z.B.:
Code:
mwArray spar;
sparset(1, spar, mwArray());

Hat jemand schon mal intensiver mit von MATLAB generierten C/C++ Bibliotheken gearbeitet und kann mir hier (mit einem Link) weiterhelfen?