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 № 1A 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