MATLAB表-选择符合条件的第一行

时间:2018-10-12 11:58:07

标签: matlab

我要选择满足特定条件的第一行。例如让我们考虑MATLAB患者样本数据

load patients
patients = table(LastName,Age,Gender,Height,Weight,Smoker);

我想选择满足“性别”为“男性”且年龄> 40岁的条件的第一行。这将导致选择了名为“约翰逊”的患者。

subset_patients = patients(strcmp(patients.Gender, 'Male') & patients.Age>40,:)
first_Male_over40 = subset_patients(1,:);

虽然有一种方法可以在一行中执行此操作,所以我不会浪费空间为子集创建单独的表吗?我尝试了以下方法,但没有用。

first_Male_over40 = patients(strcmp(patients.Gender, 'Male') & patients.Age>40,:)(1,:);

1 个答案:

答案 0 :(得分:2)

您可以按以下方式使用find(logicalIndexes, k, 'first')(在您的情况下为k=1):

first_Male_over40 = patients(find(strcmp(patients.Gender, 'Male') & (patients.Age > 40), 1, 'first'), :)