Forum: Digitale Signalverarbeitung / DSP / Machine Learning S-Function in Matlab


von Daniel (Gast)


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.

von Michael F. (startrekmichi)


Lesenswert?

Wenn mich grade nicht alles täuscht, musst du die *.c ja erst mal 
kompilieren. In Matlab z.b. mit "mex timestwo_2.c".

von Christoph G. (christoph_gradl)


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

von Thomas (Gast)


Lesenswert?

Die Matlab Hilfe zu S-Funktionen ist viel zu lang, detailliert und 
kompliziert. Mehr Nachschlagewerk als Einstiegshilfe.
Versuch es mal damit:
http://masters.donntu.edu.ua/2005/fvti/kravtsov/library/sfunctions.pdf

von Daniel (Gast)


Lesenswert?

Hallo Leute,

vielen Dank für eure Antworten. Bin die nächsten Tage leider noch mit 
nem anderen Thema beschäftigt, aber eure Antworten werden mir bestimmt 
weiterhelfen.

Danke!


Daniel

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.