2011-03-16 33 views
7

我正在MATLAB中創建一個類,雖然我幾乎沒有對象的經驗,但我幾乎肯定我應該能夠使用類方法設置類屬性。這在MATLAB中可能嗎?使用Matlab中的方法設置對象屬性

classdef foo 
    properties 
     changeMe 
    end 

    methods 
     function go() 
      (THIS OBJECT).changeMe = 1; 
     end 
    end 
end 

f = foo; 
f.go; 


t.changeMe; 
ans = 1 

回答

9

是的,這是可能的。請注意,如果您創建一個值對象,則該方法必須返回該對象才能更改屬性(因爲值對象是按值傳遞的)。如果您創建一個句柄對象(classdef foo<handle),該對象通過引用傳遞。

classdef foo 
    properties 
     changeMe = 0; 
    end 

    methods 
     function self = go(self) 
      self.changeMe = 1; 
     end 
    end 
end 

如上所述,一個值對象上的設置方法的調用返回改變的對象。如果您想更改對象,則必須將輸出複製回對象。

f = foo; 
f.changeMe 
ans = 
    0 

f = f.go; 

f.changeMe 
ans = 
    1 
相關問題