Chiamata delle funzioni di MATLAB da Python
R2026bUtilizzare 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
matlab.engine.MatlabEngine | matlab.engine.FutureResult