equivalent of isfield for tables
123 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!