Contenuto principale

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 textwrap

Per 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 pyrun o pyrunfile non 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 pyrun e pyrunfile non supportano classi con variabili locali inizializzate da altre variabili locali tramite metodi. Per tale tipo di utilizzo, creare un modulo e accedervi utilizzando il prefisso py..

  • La conversione di tipo basata su suggerimenti di tipo Python non è supportata per pyrun, pyrunfile o per l'attività Run Python Code (Esegui codice Python) in cui viene fornito codice Python nativo come input.

Vedi anche

|

Argomenti

Siti web esterni