Come ottenere il tipo di una variabile in MATLAB?

voti
163

Ha MATLAB ha una funzione / operatore che indica il tipo di una variabile (simile al typeofall'operatore in JavaScript)?

È pubblicato 23/02/2009 alle 18:27
fonte dall'utente
In altre lingue...                            


6 risposte

voti
61

class() funzione è l'equivalente di typeof()

È inoltre possibile utilizzare isa()per verificare se una variabile è di un determinato tipo. Se si vuole essere ancora più specifico, è possibile utilizzare ischar(), isfloat(), iscell(), etc.

Risposto il 23/02/2009 a 18:33
fonte dall'utente

voti
212

Utilizzare la classfunzione di

>> b = 2
b =
     2
>> a = 'Hi'
a =
Hi
>> class(b)
ans =
double
>> class(a)
ans =
char
Risposto il 23/02/2009 a 18:36
fonte dall'utente

voti
23

Fare attenzione quando si utilizza la isafunzione di. Ciò sarà vero se l'oggetto è del tipo specificato o una delle sue sottoclassi. Devi usare strcmpcon la classfunzione per verificare se l'oggetto è specificamente che tipo e non una sottoclasse.

Risposto il 11/03/2009 a 21:57
fonte dall'utente

voti
38

Un'altra funzione correlata è whos. Essa elenca tutti i tipi di informazioni (dimensione, dimensione in byte, tipo) per le variabili in un determinato spazio di lavoro.

>> 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 
Risposto il 11/03/2009 a 22:11
fonte dall'utente

voti
3

Poiché nessuno accennato, MATLAB ha anche la metaclassfunzione, che restituisce un oggetto con vari bit di informazioni sulla entità passata-in. Questi meta.classoggetti possono essere utili per i test di ereditarietà (tramite operatori di confronto comuni).

Per esempio:

>> 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

Possiamo vedere che class(someObj)è equivalente al Namecampo del risultato metaclass(someObj).

Risposto il 23/10/2017 a 10:38
fonte dall'utente

voti
0

MATLAB - tipo di variabili Controllo

Classe () funziona esattamente come quella di Javascript typeof dell'operatore.

Per avere maggiori dettagli sulle variabili che è possibile utilizzare whos comando o whos () la funzione.

Ecco il codice di esempio eseguito su MATLAB R2017a Command Window 's.

>> % 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               

>> 
Risposto il 10/05/2018 a 09:04
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more