我是Matlab的新手,抱歉这个非常简单的问题。给出一张表:
>> T = table(['MALE';'MALE';'FEMA';'FEMA';'FEMA'],[38;43;38;40;49],[71;69;64;67;64],[176;163;131;133;119])
T =
Var1 Var2 Var3 Var4
____ ____ ____ ____
MALE 38 71 176
MALE 43 69 163
FEMA 38 64 131
FEMA 40 67 133
FEMA 49 64 119
如何才能访问仅包含'FEMA'
的行?
Naively ,我会写为:
>> T(T.Var1 == 'FEMA',:)
获取
ans =
Var1 Var2 Var3 Var4
____ ____ ____ ____
FEMA 38 64 131
FEMA 40 67 133
FEMA 49 64 119
答案 0 :(得分:4)
您可以使用ismember
执行此操作:
T(ismember(T.Var1,'FEMA','rows'),:)
仅供参考,您可以将Var1
声明为单元格数组,而不是强制元素具有相同数量的字符:
T = table({'MALE';'MALE';'FEMALE';'FEMALE';'FEMALE'},[38;43;38;40;49],[71;69;64;67;64],[176;163;131;133;119])
然后您可以删除'rows'
参数
T(ismember(T.Var1,'FEMALE'),:)
答案 1 :(得分:4)
T2 = T(T.Var1=='F',:)
我认为你已经看过了帮助,但基本上这是因为它是一个不是char的单元格。 http://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-table.html
因此,如果您想匹配完整字符串,请使用字符串comp
T2 = T(strcmp(T.Var1, {'FEMA'}),:)