2009-02-23 18 views

उत्तर

209

उपयोग class समारोह

>> b = 2 
b = 
    2 
>> a = 'Hi' 
a = 
Hi 
>> class(b) 
ans = 
double 
>> class(a) 
ans = 
char 
61

class() समारोह typeof()

के बराबर तुम भी यदि किसी वैरिएबल एक विशेष प्रकार का है की जाँच करने के isa() का उपयोग कर सकते है। आप और भी अधिक विशिष्ट होना चाहते हैं, तो आप जब isa समारोह का उपयोग कर का उपयोग कर सकते ischar(), isfloat(), iscell(), आदि

23

सावधान रहें। यह सही होगा यदि आपकी ऑब्जेक्ट निर्दिष्ट प्रकार या इसके उप-वर्गों में से एक है। class फ़ंक्शन के साथ strcmp का उपयोग करने के लिए आपको यह जांचने के लिए उपयोग करना होगा कि ऑब्जेक्ट विशेष रूप से उस प्रकार का है और उप-वर्ग नहीं है।

38

एक और संबंधित कार्य whos है। यह किसी दिए गए वर्कस्पेस में चर के लिए सभी प्रकार की जानकारी (आयाम, बाइट आकार, प्रकार) सूचीबद्ध करेगा।

>> a = [0 0 7]; 
>> whos a 
    Name  Size   Bytes Class  Attributes 

    a   1x3    24 double    

>> b = 'James Bond'; 
>> whos b 
    Name  Size   Bytes Class Attributes 

    b   1x10    20 char 
+1

[डब्ल्यूएचओ] (http://www.mathworks.de/de/help/matlab/ref/who.html) फ़ंक्शन चर के आकार की सूची नहीं देता है। यदि आपके कार्यक्षेत्र में भीड़ है तो इसकी वजह यह बहुत तेज़ है। – JaBe

3

के बाद से कोई भी नहीं यह उल्लेख किया है, MATLAB भी metaclass समारोह है, जो पारित कर दिया-में संस्था के बारे में जानकारी के विभिन्न टुकड़ों के साथ एक वस्तु देता है। ये meta.class ऑब्जेक्ट्स विरासत के परीक्षण (सामान्य तुलना ऑपरेटर के माध्यम से) के लिए उपयोगी हो सकते हैं।

उदाहरण के लिए:

>> metaclass(magic(1)) 

ans = 

    class with properties: 

        Name: 'double' 
       Description: '' 
     DetailedDescription: '' 
        Hidden: 0 
        Sealed: 0 
       Abstract: 0 
       Enumeration: 0 
      ConstructOnLoad: 0 
     HandleCompatible: 0 
      InferiorClasses: {0×1 cell} 
     ContainingPackage: [0×0 meta.package] 
    RestrictsSubclassing: 0 
      PropertyList: [0×1 meta.property] 
       MethodList: [272×1 meta.method] 
       EventList: [0×1 meta.event] 
    EnumerationMemberList: [0×1 meta.EnumeratedValue] 
      SuperclassList: [0×1 meta.class] 

>> ?containers.Map <= ?handle 

ans = 

    logical 

    1 

हम देख सकते हैं कि class(someObj)metaclass(someObj) के परिणाम की Name क्षेत्र के बराबर है।

संबंधित मुद्दे