Таблица MATLAB - выберите первую строку, соответствующую условию - PullRequest
0 голосов
/ 12 октября 2018

Я хочу выбрать первый ряд, который соответствует определенному условию.Например, давайте рассмотрим данные выборки пациентов 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 голосов
/ 12 октября 2018

Вы можете использовать find(logicalIndexes, k, 'first') следующим образом (k=1 в вашем случае):

first_Male_over40 = patients(find(strcmp(patients.Gender, 'Male') & (patients.Age > 40), 1, 'first'), :)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...