/ / Matlab: In che modo MATLAB passa una struct in una chiamata di funzione? [duplicato] - matlab

Matlab: In che modo MATLAB passa una struct in una chiamata di funzione? [duplicato] - matlab

Quello che mi sto chiedendo è come matlab passi una struttura ad una funzione o metodo di una classe MATLAB e come la restituisce. Diciamo che ho il seguente codice

foo.var1 = 3;
foo.var2 = [1 2 3 4];

function return_foo = my_fun(structure)
structure.var1 = structure.var1 + 7;
structure.var2 = 2*structure.var2;
return_foo = structure;
end

e poi chiama my_fun(foo). Matlab fa una copia profonda di foo e la passa alla funzione o passa semplicemente un puntatore? Stessa domanda per il compito return_foo = structure; e per il ritorno return_foo al chiamante.

Modifica: questo comportamento cambia quando i dati trattenuti dalla struttura diventano più "complessi", ad es. strutture nidificate, matrici, ...

risposte:

0 per risposta № 1

A meno che non lo si usi handle (matlab object oriented) non c'è nulla come un puntatore in MATLAB. Si comporta come se fosse passata una copia profonda dei dati. I dettagli sono spiegati Qui