在matlab表中查找行

Arn*_*ein 2 matlab slice

我是 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 
Run Code Online (Sandbox Code Playgroud)

如何访问'FEMA'仅包含 的行?

天真地,我会写成:

>> T(T.Var1 == 'FEMA',:)
Run Code Online (Sandbox Code Playgroud)

要得到

ans = 

Var1    Var2    Var3    Var4
____    ____    ____    ____

FEMA    38      64      131 
FEMA    40      67      133 
FEMA    49      64      119
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 5

您可以使用ismember

T(ismember(T.Var1,'FEMA','rows'),:)
Run Code Online (Sandbox Code Playgroud)

仅供参考,您可以声明Var1为元胞数组,而不是强制元素具有相同数量的字符:

T = table({'MALE';'MALE';'FEMALE';'FEMALE';'FEMALE'},[38;43;38;40;49],[71;69;64;67;64],[176;163;131;133;119])
Run Code Online (Sandbox Code Playgroud)

然后你可以放弃'rows'论点

T(ismember(T.Var1,'FEMALE'),:)
Run Code Online (Sandbox Code Playgroud)