Contenuto principale

Chiamata delle funzioni di MATLAB da Python

R2026b

Utilizzare l'API di Engine di MATLAB® per Python® per chiamare qualsiasi funzione di MATLAB nel percorso MATLAB.

Se la funzione di MATLAB non è presente nel percorso, è possibile richiamarla dalla cartella attuale. Ad esempio, per richiamare la funzione di MATLAB myFnc, nella cartella myFolder, digitare:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd(r'myFolder', nargout=0)
eng.myFnc()

Se myFnc si trova nella cartella C:/work/myfiles, è possibile aggiungere questa cartella al percorso di Python.

eng.addpath("C:/work/myfiles")

Per aggiungere un percorso a tutte le sottocartelle, digitare:

s = eng.genpath('C:/work/myfiles')
eng.addpath(s, nargout=0)

Restituzione dell'argomento di output dalla funzione di MATLAB

È possibile chiamare direttamente qualsiasi funzione di MATLAB e restituire i risultati a Python. Ad esempio, per determinare se un numero è primo, utilizzare engine per chiamare la funzione isprime.

import matlab.engine
eng = matlab.engine.start_matlab()
tf = eng.isprime(37)
print(tf)
True

Restituzione di più argomenti di output dalla funzione di MATLAB

Quando si chiama una funzione tramite engine, per impostazione predefinita engine restituisce un unico argomento di output. Se è noto che la funzione può restituire più argomenti, utilizzare l'argomento nargout per specificare il numero di argomenti di output.

Per determinare il massimo comune denominatore di due numeri, utilizzare la funzione gcd. Impostare nargout in modo che restituisca i tre argomenti di output da gcd.

import matlab.engine
eng = matlab.engine.start_matlab()
t = eng.gcd(100.0,80.0,nargout=3)
print(t)
(20.0, 1.0, -1.0)

Restituzione di nessun argomento di output dalla funzione di MATLAB

Alcune funzioni di MATLAB non restituiscono alcun argomento di output. Se la funzione non restituisce alcun argomento, impostare nargout su 0.

Aprire la documentazione di MathWorks® nel browser web del sistema da Python.

import matlab.engine
eng = matlab.engine.start_matlab()
eng.doc(nargout=0)

La funzione MATLAB doc apre il browser, ma non restituisce argomenti di output. Se non si specifica nargout=0, engine genera un errore.

Interruzione dell'esecuzione della funzione

Per interrompere l'esecuzione di una funzione di MATLAB premere Ctrl+C (CTRL+C). Il controllo torna a Python.

Utilizzo dei nomi delle funzioni per gli operatori di MATLAB

È possibile utilizzare un operatore di MATLAB in Python chiamando la funzione equivalente. Per un elenco degli operatori e dei nomi delle funzioni associate, vedere MATLAB Operators and Associated Functions. Ad esempio, per sommare due numeri, utilizzare la funzione plus anziché l'operatore +.

import matlab.engine
eng = matlab.engine.start_matlab()
a = 2
b = 3
eng.plus(a,b) 

Vedi anche

|

Argomenti