Probleme beim Übergang von Matlab zu Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
janiboy46
User
Beiträge: 3
Registriert: Montag 2. Februar 2015, 23:30

Hallo,

ich habe jetzt angefangen mich in Python einzuarbeiten und möchte dies künftig als Ersatz für Matlab nutzen.
Es gibt da allerdings ein gravierendes Problem, für das ich bisher keine Lösung finden konnte. Und zwar konnte man bei Matlab alle Funktionen, die man selber geschrieben hatte und die in einem festgelegten Ordner liegen, einfach über die Kommandozeile von Matlab aufrufen.
Ich weiß allerdings nicht, wie dies mit Python möglich ist. Zwar habe ich z.B. mal bei Youtube zu diesem Thema gesucht, aber da gibt es immer nur Beispiele, wo dann jemand in einem Python-Script eine Funktion erstellt und diese dann unmittelbar über ,,run'' -> ,,run module'' ausführt. Ein Beispiel für einen Funktionsaufruf über die Kommandozeile habe ich leider nicht finden können. Könnte mir vielleicht jemand sagen, wie ich das machen kann? Ein kleines Beispiel oder ein Link zu einer Seite, wo das mal richtig erklärt wird, wäre genauso hilfreich!
Dann würde ich auch noch gerne wissen, wie man eine Funktion in einer anderen aufrufen kann (in Matlab ging das immer einfach dadurch, dass beide Funktionen im selben Ordner liegen)

Gruß
Jan
BlackJack

@janiboy46: Hast Du denn schon mal das Tutorial in der Python-Dokumentation durchgearbeitet? Da werden unter anderem auch Funktionen und Module behandelt.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Matlab, ich hoffe ich muss das nie mehr wiedersehen. Gefunden werden nur die Skripte die im aktuellen Arbeitsverzeichnis bzw. über addpath hinzugefügt wurden in Matlab.
Funktionen die innerhalb der Skripte sind(Subfunktionen?), sind für Matlab schon nicht mehr erreichbar. Python ist da wesentlich weiter und erlaubt auch Verzeichnisstrukturen. Einfach und Logik sollte man nicht in Verbindung mit Matlab nennen.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

darktrym hat geschrieben:Funktionen die innerhalb der Skripte sind(Subfunktionen?), sind für Matlab schon nicht mehr erreichbar.
Closures kann man auch in Python nicht von außen aufrufen.
Python ist da wesentlich weiter und erlaubt auch Verzeichnisstrukturen.
Auch Matlab erlaubt die Erstellung von Modulen (Packages) mit geschachtelte Verzeichnistrukturen.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Darii: Matlab hat die Philosophie eine Datei pro Funktion. Verschiedene Dateien können zwar in Verzeichnisse mit seltsamen Namen ('+modul') abgelegt werden, die "Module" werden jedoch auch wieder global mit addpath hinzugefügt, mit den selben Problemen bei Namenskonflikten.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Sirius3 hat geschrieben:@Darii: Matlab hat die Philosophie eine Datei pro Funktion. Verschiedene Dateien können zwar in Verzeichnisse mit seltsamen Namen ('+modul') abgelegt werden, die "Module" werden jedoch auch wieder global mit addpath hinzugefügt, mit den selben Problemen bei Namenskonflikten.
Nein, es reicht das „top-level“ Packet hinzuzufügen, dann kannst du entweder per modul.funktion auf einzelne Funktionen zugreifen oder per `import modul` sämtliche Funktionen in den aktuellen Namensraum importieren.
Antworten