Matlab

2011-03-16 6 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