Value vs Handle 類

MATLAB 中的類分為兩大類:值類和控制代碼類。主要區別在於,複製值類的例項時,底層資料將複製到新例項,而對於控制代碼類,新例項指向原始資料,而新例項中的更改值會更改原始資料。可以通過繼承 handle 類將類定義為控制代碼。

classdef valueClass
    properties
        data
    end
end

classdef handleClass < handle
    properties
        data
    end
end

然後

>> v1 = valueClass;
>> v1.data = 5;
>> v2 = v1;
>> v2.data = 7;
>> v1.data
ans =
     5

>> h1 = handleClass;
>> h1.data = 5;
>> h2 = h1;
>> h2.data = 7;
>> h1.data
ans =
     7