Chiamata diretta di funzionalità Python da MATLAB
È possibile chiamare funzionalità dalle librerie di Python® o eseguire dichiarazioni Python direttamente da MATLAB®.
Accesso ai moduli di Python
Per accedere alle librerie di Python, aggiungere il prefisso py. al nome Python. Ad esempio:
py.list({'This','is a','list'}) % Call built-in function list
py.textwrap.wrap('This is a string') % Call wrap function in module textwrapPer maggiori informazioni, vedere Accedi ai moduli di Python da MATLAB - Come iniziare.
Esecuzione del codice Python
Per eseguire le dichiarazioni Python nell'interprete Python dal prompt dei comandi di MATLAB, utilizzare la funzione pyrun. Con questa funzione è possibile eseguire codice che passa tipi di dati di MATLAB come input e restituisce alcune o tutte le variabili a MATLAB. Ad esempio, si supponga di eseguire questa dichiarazione in un interprete Python.
>>> l = ['A', 'new', 'list']
Per eseguire la dichiarazione da MATLAB, utilizzare pyrun. Per restituire il risultato a una variabile di MATLAB myList, aggiungere "l" come argomento outputs:
myList = pyrun("l = ['A', 'new', 'list']", "l");
Esecuzione degli script di Python
Per richiamare uno script di Python dal prompt dei comandi di MATLAB, utilizzare la funzione pyrunfile. Si passano i dati di MATLAB e si restituiscono le variabili in modo identico a quanto avviene con pyrun. Ad esempio, creare un file mklist.py con queste dichiarazioni:
# Python script file mklist.py:
s = 'list'
L = ['A', 'new', s]
Eseguire lo script da MATLAB:
myListFile = pyrunfile("mklist.py", "L")
myListFile =
Python list with no properties.
['A', 'new', 'list']
Accesso alle variabili di Python
Quando si utilizza il prefisso py., MATLAB importa l'intero modulo e può accedere a tutte le funzioni e classi del codice Python. Tuttavia, quando si esegue codice Python utilizzando la funzione pyrun o la funzione pyrunfile, se si desidera accedere ai dati di Python è necessario restituire esplicitamente gli oggetti Python a MATLAB utilizzando l'argomento outvars.
Limiti alle funzioni pyrun e pyrunfile
Le classi di Python definite utilizzando
pyrunopyrunfilenon possono essere modificate se si restituisce un'istanza della classe a MATLAB. Se è necessario modificare le definizioni delle classi, riavviare la sessione dell'interprete:terminate(pyenv) pyenv(ExecutionMode="OutOfProcess")
In alternativa, riavviare MATLAB per
"InProcess".Le funzioni
pyrunepyrunfilenon supportano classi con variabili locali inizializzate da altre variabili locali tramite metodi. Per tale tipo di utilizzo, creare un modulo e accedervi utilizzando il prefissopy..La conversione di tipo basata su suggerimenti di tipo Python non è supportata per
pyrun,pyrunfileo per l'attività Run Python Code (Esegui codice Python) in cui viene fornito codice Python nativo come input.