equivalent of isfield for tables
    101 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Jonathan C. Lansey
 am 4 Jun. 2014
  
    
    
    
    
    Beantwortet: Georges-Andre Chaudron
      
 am 19 Jan. 2017
            I'd like to know if my Matlab table has a particular column. If it was a structure I'd use isfield. Is there a built in function for this?
0 Kommentare
Akzeptierte Antwort
  Georges-Andre Chaudron
      
 am 19 Jan. 2017
        I would also like to suggest using ismember()
For instance:
f1 = 1; f2 = 10; t = table(f1,f2)
t = 
    f1    f2
    __    __
    1     10
ismember('f1', t.Properties.VariableNames)
  logical
   1
It also works for a range of values:
ismember({'f0','f1','f2'}, t.Properties.VariableNames)
  1×3 logical array
   0   1   1
0 Kommentare
Weitere Antworten (1)
  Roger Parkyn
 am 15 Sep. 2015
        
      Bearbeitet: Roger Parkyn
 am 15 Sep. 2015
  
      This issue was also raised by Pawel Kusmierek ( 123242-why-isfield-does-not-work-with-tables-but-fieldnames-does ). He gave a reasonably tidy work-around, in short:
name_exists = any(strcmp('Var_Name',fieldnames(Table_Name)))
1 Kommentar
  Kelly Kearney
      
 am 15 Sep. 2015
				Note that fieldnames returns all object properties, which for a table includes both variable names and the Properties structure. To get just the column/variable names, query the VariableNames property:
t = table({'one';'two'}, [1;2])
t = 
    Var1     Var2
    _____    ____
    'one'    1   
    'two'    2   
>> t.Properties.VariableNames
ans = 
    'Var1'    'Var2'
>> fieldnames(t)
ans = 
    'Var1'
    'Var2'
    'Properties'
Siehe auch
Kategorien
				Mehr zu Structures finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!