【问题标题】:MATLAB table - Select first row that meets a conditionMATLAB 表 - 选择满足条件的第一行
【发布时间】:2018-10-12 20:14:04
【问题描述】:

我想选择满足某个条件的第一行。例如,让我们考虑 MATLAB 患者的样本数据

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

我想选择满足 Gender 为 'Male' 和 Age > 40 条件的第一行。这将导致选择名为“Johnson”的患者。

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,:);

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-08
      • 2019-04-24
      • 1970-01-01
      • 2011-07-20
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多