এমএটিএলবিএল-এ ভেরিয়েবলের ধরণ কীভাবে পাবেন?


188

ম্যাটল্যাবের কি কোনও ফাংশন / অপারেটর রয়েছে যা ভেরিয়েবলের ধরণ ( 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

যেহেতু কেউ এটি উল্লেখ করেনি, এমএটিএলএবি-র 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)সমান ।Namemetaclass(someObj)


0

ম্যাটল্যাব - ভেরিয়েবলের পরীক্ষা করা হচ্ছে

বর্গ () ঠিক জাভাস্ক্রিপ্টের টাইপফোন অপারেটরের মতো কাজ করে ।

ভেরিয়েবল সম্পর্কে আরও বিশদ পেতে আপনি হু হুমক বা WHOS () ফাংশন ব্যবহার করতে পারেন ।

এখানে ম্যাটলব আর ২০১201 এ'র কমান্ড উইন্ডোতে কার্যকর করা উদাহরণ কোড is

>> % 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
এটি বর্তমানে গৃহীত উত্তরের সাথে কিছু যোগ করে না।
রাইরিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.