S-Function in Matlab

Gast #2134671
Lesenswert?

Hallo,

ich bin seit ein paar Tagen dabei zu versuchen, eine stinknormale 
billige C-Funktion in Matlab einzubinden.

Habe es sowohl auf Basis des "timestwo" Beispiel, als auch durch 
Komplettes Neu-Erzeugen probiert.

Bin weder im Internet noch in der Matlab-Hilfe schlauer geworden.


Kann doch nicht sein, dass das so schwierig ist!?


Meine Vorgehensweise:

- Ich nehme den "timestwo"-Block, nenne ihn in "timestwo_2" um und drück 
auf Apply. (die timestwo_2 soll dann stellvertretend für eine eigene 
Funktion sein, die aber erstmal nichts anderes macht als, die 
"timestwo".
- Ich click auf "Edit" => "Open Editor" und speicher diese Datei im 
Worspace als "timestwo_2.c" ab.
- Ich schließe die Datei und klicke zur Überprüfung nochmals auf "Edit" 
=> Es öffnet sich die "timestwo_2.c" - Datei.
- Nun geh ich in den Matlab-Ordner in dem die Original timestwo.c Datei 
liegt. Den Inhalt kopiere ich und packe ihn in meine "timestwo_2.c".
- Ich ändere die Zeile "#define S_FUNCTION_NAME  timestwo" in "#define 
S_FUNCTION_NAME  timestwo_2" und speicher es ab.

- Nun möchte ich das Model testen und es kommt die Fehlermeldung:
"Error in S-function 'sfcndemo_timestwo/Input Times 2 S-Function': 
S-Function 'timestwo_2' does not exist"



Kann mir jemand helfen? Vielen Dank.
#2138486
Lesenswert?

Hallo,
genau du musst diese zuerst kompilieren, wie bereits von startrekmichi 
geschrieben. Wenn es nicht auf sofort klappt mit mex -setup einen 
Compiler auswählen. Bzw. wenn du Matlab 64 Bit verwendest musst du 
zuerst einen nachinstallieren (z.B. VS von MS).


Vielleicht auch hilfreich für den Anfang -> der S-Function-Builder von 
Matlab:
http://www.mathworks.com/help/toolbox/simulink/slref/sfunctionbuilder.html


mfg
Christoph

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren