MATLAB में एक चर का प्रकार कैसे प्राप्त करें?


188

क्या MATLAB में एक फ़ंक्शन / ऑपरेटर है जो चर के प्रकार ( typeofजावास्क्रिप्ट में ऑपरेटर के समान) को इंगित करता है ?

जवाबों:



70

class() फ़ंक्शन के बराबर है typeof()

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


44

एक अन्य संबंधित कार्य है 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
डब्ल्यूएचओ समारोह चर के आकार की सूची नहीं है। इसकी वजह से यह बहुत तेज़ है अगर आपके कार्यक्षेत्र में भीड़ है।
जाब

27

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


5

चूंकि किसी ने इसका उल्लेख नहीं किया है, 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)बराबर Nameहैmetaclass(someObj)


0

MATLAB - चर के प्रकार की जाँच

class () बिल्कुल जावास्क्रिप्ट के टाइपोफ की तरह काम करता है ऑपरेटर ।

चर के बारे में अधिक जानकारी प्राप्त करने के लिए आप व्हाटस कमांड या व्हाट्स () फ़ंक्शन का उपयोग कर सकते हैं ।

यहाँ MATLAB R2017a कमांड विंडो पर निष्पादित उदाहरण कोड है ।

>> % Define a number
>> num = 67

num =

    67

>> % Get type of variable num
>> class(num)

ans =

    'double'

>> % Define character vector
>> myName = 'Rishikesh Agrawani'

myName =

    'Rishikesh Agrwani'

>> % Check type of myName
>> class(myName)

ans =

    'char'

>> % Define a cell array
>> cellArr = {'This ', 'is ', 'a ', 'big chance to learn ', 'MATLAB.'}; % Cell array
>> 
>> class(cellArr)

ans =

    'cell'

>> % Get more details including type
>> whos num
  Name      Size            Bytes  Class     Attributes

  num       1x1                 8  double              

>> whos myName
  Name        Size            Bytes  Class    Attributes

  myName      1x17               34  char               

>> whos cellArr
  Name         Size            Bytes  Class    Attributes

  cellArr      1x5               634  cell               

>> % Another way to use whos i.e using whos(char_vector)
>> whos('cellArr')
  Name         Size            Bytes  Class    Attributes

  cellArr      1x5               634  cell               

>> whos('num')
  Name      Size            Bytes  Class     Attributes

  num       1x1                 8  double              

>> whos('myName')
  Name        Size            Bytes  Class    Attributes

  myName      1x17               34  char               

>> 

3
यह वर्तमान में स्वीकृत उत्तर के लिए कुछ भी नहीं जोड़ता है।
रेय्यरेंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.