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 Accesso ai moduli di Python da MATLAB.
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 la modalità di esecuzione in corso.
Le funzioni
pyrunepyrunfilenon supportano classi con variabili locali inizializzate da altre variabili locali tramite metodi. Per tale utilizzo, creare un modulo Python 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 si fornisce codice Python nativo come input.