我要选择满足特定条件的第一行。例如让我们考虑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,:);
答案 0 :(得分:2)
您可以按以下方式使用find(logicalIndexes, k, 'first')
(在您的情况下为k=1
):
first_Male_over40 = patients(find(strcmp(patients.Gender, 'Male') & (patients.Age > 40), 1, 'first'), :)