find-funktion < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:41 Mi 17.10.2007 | Autor: | anitram |
halli hallo!
ich verwende momentan die find-funktion, und würde gerne wissen was genau diese funktion macht. ich weiss schon für was sie gut ist, aber ich würde mir gerne das m-file dazu ansehen.
leider hab ich in matlab selbst in find.m nur kommentarzeilen, also keine befehle.
kann man irgendwo das m-file dazu finden?
oder weiß jemand wie das ungefähr aussieht?
vielen dank für jede hilfe!
lg anitram
|
|
|
|
Hallo Martina,
viele der elementaren Funktionen in Matlab sind nicht in .m-Files implementiert sondern (der besseren Leistung wegen) in C oder C++ und liegen nur in Form von binären Bibliotheken vor. Also: unleserlich.
Da Matlab aber nicht Open Source ist, kann man auch den Quelltext nicht einsehen.
Open Source ist aber Octave. Da die Entwickler sich bemühen, möglichst viel von der Matlab-Funktionalität zu bieten, kann man mal hier in den Quelltext schauen und vermuten, dass Matlab es so ähnlich macht. Dazu habe ich mal die Datei octave-2.1.0.tar.gz entpackt und in src/find.cc geschaut.
Und es ist wirklich keine Zauberei: Zuerst wird gezählt, wieviele Elemente das Ergebnis enthält, dann werden die Ergebnisvektoren angelegt und schließlich die Ergebnisvektoren gefüllt. Das alles geschieht in einfachsten for-Schleifen. Du kannst ja selbst mal in den Quelltext schauen.
Ob das in Matlab genauso läuft, weiß ich allerdings nicht. Aber viel kann man da nicht anders machen. Man kann höchstens tricksen, um es schneller zu machen.
Gruß
Martin
Dateianhänge: Anhang Nr. 1 (Typ: cc) [nicht öffentlich]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:26 Do 18.10.2007 | Autor: | anitram |
hallo martin!
du bist (wie immer!) ein tolle hilfe!
vielen vielen dank für diese info!
konnte mir nun den code anschauen, und hab jetzt ungefähr kapiert wie das funktioniert!
dass in matlab c++ vorkommt hab ich bis jetzt so nicht gewusst, und dass man nicht alle funktionen anschauen kann genausowenig....
also vielen dank nochmal!
lg anitram
|
|
|
|