Werden Matlab-Matrizen pass-by-value oder pass-by-reference übertragen?

7

Ich bin neu bei Matlab. Sie können diese Frage albern finden, aber ich frage mich wirklich, ob die folgende Anweisung eine Wert-für-Wert-Operation oder eine Pass-by-Reference-Operation ist.

%Vor%

Ist die Itemp eine neue Matrix, deren Werte von binaryImage kopiert werden, oder ist es nur ein Zeiger auf die binaryImage ?

    
Yunus Eren Güzel 25.02.2012, 12:51
quelle

2 Antworten

12

Es wird als Referenz übergeben, bis Sie Itemp ändern.

Wenn Sie Itemp matlab ändern, wird binaryImage nach Itemp kopiert und dann geändert.

Ich habe einige interessante Tests gemacht. Wenn du es tust:

%Vor%

nur eine Kopie wird im Speicher gehalten. Wenn Sie A

ändern %Vor%

Dann macht Matlab eine neue Kopie der Matrix für die neue A , und die Variablen B , C , D , E zeigen immer noch auf die Matrix der alten A .

    
Oli 25.02.2012, 12:54
quelle
12

Matlab verwendet ein Kopieren-beim-Schreiben Strategie

    
CitizenInsane 25.02.2012 13:13
quelle