Schede riassuntive

MATLAB per gli utenti Python

Il linguaggio MATLAB è pensato principalmente per il calcolo scientifico complesso. MATLAB combina un ambiente desktop ottimizzato per l’analisi iterativa con un linguaggio di programmazione che esprime direttamente la matematica delle matrici e degli array. Comprendere la filosofia e la progettazione delle API può essere utile quando si impara a usare MATLAB.

Ottimizzazione di Python con MATLAB

Integra gli strumenti avanzati di MATLAB direttamente nei tuoi workflow di Python.

Sintassi Python Sintassi MATLAB Scopo Esempi di MATLAB
# %

Commento

% hello
print Do not terminate with ;

Output di stampa

x
/ ...

Continua nella riga successiva

x = 1+...2;
os !

Comando del sistema operativo

! echo hi
+ - * / + - * /

Operatori matematici

x = 1+2
** ^

Esponente

x = y^2
* / ** .* ./ .^

Operatori elemento per elemento

x = [1 2].* [3 4]
not, and, or ~ & |

Operatori logici NOT, AND, OR

if x<2 & x>2
del clear

Cancella variabile dalla memoria

clear x y
clear clc

Cancella finestra dei comandi

clc
Sintassi MATLAB Scopo Esempio
( )

Indicizzazione (copy-on-write)

x(1,1)
[ ]

Crea array

x = [1 2 3]

Unisci array

z = [x ; y]
{ }

Crea array di celle

x = {42; "hello world"}

Estrai contenuti da un contenitore

x{1,1}
.

Accedi a una proprietà o a un metodo di una classe

obj.Data

Fai riferimento a un campo di una tabella o di una struct

t.FieldName
  • L’elemento iniziale ha indice 1.
  • L’indicizzazione include gli estremi dell’intervallo, a sinistra e a destra.
  • Le opzioni di indicizzazione includono: indicizzazione N-D (riga, colonna), indicizzazione lineare (numero dell’elemento) e indicizzazione logica (condizione).
Creazione di funzioni

È possibile dichiarare funzioni all’interno di un file di funzioni. Gli argomenti di input vengono racchiusi tra parentesi.

function z = foo(x,y)
   ...
end

Più valori di output vengono racchiusi tra parentesi quadre.

function [a,b] = foo(x,y)
    ...
end

Chiamata di funzioni con argomenti di input e coppie nome-valore

  y = foo(x,y,"Name",Value)

Tipi di dati simili:

Python MATLAB
float double, single
complex complex single, complex double
int (u)int8, (u)int16, (u)int32, (u)int64
float(nan) NaN
float(inf) inf
str str, char
bool logical
dict struct
list, tuple cell
pandas.dataframe table

Per impostazione predefinita, MATLAB memorizza tutti i valori numerici come numeri a virgola mobile a precisione doppia. Python memorizza alcuni numeri come interi e altri come numeri a virgola mobile. In MATLAB, per x=4 e y=4.0, x è sempre uguale a y.

Istruzione Esempio

per

for i = 1:10
   ...
end

se

if x<
   ...
   elseif x == 2    
   else
   ...
end

finché

while x<3
   ...
end

switch-case

switch switch_arg
   ...
   case case_arg
   ...
end

try-catch

try
   ...
   catch
   ...
end
Definisci una classe Usa una classe
classdef MyClass
   properties
      MyProp
   end
   methods
      function obj = MyClass(val)
      end
      function y = MyMethod(obj,x)
      end
   end
end
  • Salva la definizione della classe con lo stesso nome della classe.

    MyClass.m
  • Crea un oggetto della classe

    a = MyClass
  • Accedi alle proprietà

    a.MyProp
  • Chiama i metodi per eseguire operazioni

    b = MyMethod(a,val)
  • Per il passaggio per riferimento, crea una classe “handle”

    classdef myclass < handle
       ...
    end