Direktaufruf von Python-Funktionen aus MATLAB heraus
Sie können direkt von MATLAB® aus Funktionen aus Python®-Bibliotheken aufrufen und Python-Anweisungen ausführen.
Zugriff auf Python-Module
Fügen Sie zum Zugriff auf Python-Bibliotheken den Präfix py. zum Python-Namen hinzu. Beispiel:
py.list({'This','is a','list'}) % Call built-in function list
py.textwrap.wrap('This is a string') % Call wrap function in module textwrapWeitere Informationen finden Sie unter Access Python Modules from MATLAB.
Ausführen Python-Code
Verwenden Sie zum Ausführen von Python-Anweisungen im Python-Interpreter von der MATLAB-Eingabeaufforderung aus die Funktion pyrun. Mit dieser Funktion können Sie Code ausführen, der MATLAB-Typen als Eingabe übergibt und einige oder alle der Variablen an MATLAB zurückgibt. Nehmen wir zum Beispiel an, dass Sie diese Anweisung in einem Python-Interpreter ausführen.
>>> l = ['A', 'new', 'list']
Verwenden Sie pyrun, um die Anweisung von MATLAB aus auszuführen. Um das Ergebnis an eine MATLAB-Variable myList zurückzugeben, fügen Sie "l" als ein outputs-Argument hinzu:
myList = pyrun("l = ['A', 'new', 'list']", "l");
Ausführen von Python-Skripten
Verwenden Sie zum Aufrufen eines Python-Skripts von der MATLAB-Eingabeaufforderung aus die pyrunfile-Funktion. Sie übergeben MATLAB Daten und geben Variablen auf die gleiche Weise zurück wie mit pyrun. Erstellen Sie zum Beispiel mit folgenden Anweisungen eine mklist.py-Datei:
# Python script file mklist.py:
s = 'list'
L = ['A', 'new', s]
Führen Sie das Skript von MATLAB aus:
myListFile = pyrunfile("mklist.py", "L")
myListFile =
Python list with no properties.
['A', 'new', 'list']
Zugriff auf Python-Variablen
Wenn Sie den Präfix py. verwenden, importiert MATLAB das gesamte Modul und kann auf alle Funktionen und Klassen des Python-Codes zugreifen. Wenn Sie den Python-Code jedoch mit den Funktionen pyrun oder pyrunfile ausführen, müssen Sie, wenn Sie auf Python-Daten zugreifen wollen, Python-Objekte mit dem outvars-Argument explizit an MATLAB zurückgeben.
Beschränkungen der Funktionen pyrun und pyrunfile
Python-Klassen, die mit
pyrunoderpyrunfiledefiniert wurden, können nicht geändert werden, wenn Sie eine Instanz der Klasse an MATLAB zurückgeben. Starten Sie eine neue Interpreter-Sitzung, falls Sie Klassendefinitionen ändern müssen:terminate(pyenv) pyenv(ExecutionMode="OutOfProcess")
Alternativ starten Sie MATLAB im In-Prozess-Ausführungsmodus neu.
Die Funktionen
pyrunundpyrunfileunterstützen keine Klassen mit lokalen Variablen, die durch andere lokale Variablen über Methoden initialisiert werden. Erstellen Sie für eine solche Verwendung ein Python-Modul und greifen Sie mit dem Präfixpy.darauf zu.Die Typkonvertierung basierend auf Python-Typ-Anmerkungen wird für
pyrun,pyrunfileund den Task Run Python Code (Python-Code ausführen) nicht unterstützt, falls Sie nativen Python-Code als Eingabe bereitstellen.