필터 지우기
필터 지우기

equivalent of isfield for tables

조회 수: 109 (최근 30일)
Jonathan C. Lansey
Jonathan C. Lansey 2014년 6월 4일
답변: Georges-Andre Chaudron 2017년 1월 19일
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?

채택된 답변

Georges-Andre Chaudron
Georges-Andre Chaudron 2017년 1월 19일
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

추가 답변 (1개)

Roger Parkyn
Roger Parkyn 2015년 9월 15일
편집: Roger Parkyn 2015년 9월 15일
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
Kelly Kearney
Kelly Kearney 2015년 9월 15일
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'

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by