Этот пример показывает, как выбрать наблюдение или подмножество наблюдений от массива набора данных.
Загрузите демонстрационный массив набора данных, hospital
. Массивы набора данных могут иметь наблюдение (строка) имена. Этот массив имеет имена наблюдения, соответствующие уникальным терпеливым идентификаторам.
load hospital
hospital.Properties.ObsNames(1:10)
ans = 10x1 cell array
{'YPL-320'}
{'GLI-532'}
{'PNI-258'}
{'MIJ-579'}
{'XLK-030'}
{'TFP-518'}
{'LPD-746'}
{'ATA-945'}
{'VNL-702'}
{'LQW-768'}
Это первые 10 имен наблюдения.
Можно использовать имена наблюдения, чтобы индексировать в массив набора данных. Например, извлеките фамилию, пол и возраст для пациента с идентификатором XLK-030
.
hospital('XLK-030',{'LastName','Sex','Age'})
ans = LastName Sex Age XLK-030 'BROWN' Female 49
Создайте новый массив набора данных, содержащий первые 50 пациентов.
ds50 = hospital(1:50,:); size(ds50)
ans = 1×2
50 7
Создайте новый массив набора данных, содержащий только штекерных пациентов. Чтобы найти штекерных пациентов, используйте логическое условие искать переменное, содержащее информацию о поле.
dsMale = hospital(hospital.Sex=='Male',:); dsMale(1:10,{'LastName','Sex'})
ans = LastName Sex YPL-320 'SMITH' Male GLI-532 'JOHNSON' Male ATA-945 'WILSON' Male VNL-702 'MOORE' Male XUE-826 'JACKSON' Male TRW-072 'WHITE' Male KOQ-996 'MARTIN' Male YUZ-646 'THOMPSON' Male KPW-846 'MARTINEZ' Male XBA-581 'ROBINSON' Male
Можно использовать несколько условий искать массив набора данных. Например, создайте новый массив набора данных, содержащий только пациенток, старше, чем 40.
dsFemale = hospital(hospital.Sex=='Female' & hospital.Age > 40,:); dsFemale(1:10,{'LastName','Sex','Age'})
ans = LastName Sex Age XLK-030 'BROWN' Female 49 TFP-518 'DAVIS' Female 46 QFY-472 'ANDERSON' Female 45 UJG-627 'THOMAS' Female 42 BKD-785 'CLARK' Female 48 VWL-936 'LEWIS' Female 41 AAX-056 'LEE' Female 44 AFK-336 'WRIGHT' Female 45 KKL-155 'ADAMS' Female 48 RBA-579 'SANCHEZ' Female 44
Создайте новый массив набора данных, содержащий случайное подмножество 20 пациентов от массива набора данных hospital
.
rng('default') % For reproducibility dsRandom = hospital(randsample(length(hospital),20),:); dsRandom.Properties.ObsNames
ans = 20x1 cell array
{'DAU-529'}
{'AGR-528'}
{'RBO-332'}
{'QOO-305'}
{'RVS-253'}
{'QEQ-082'}
{'EHE-616'}
{'HVR-372'}
{'KOQ-996'}
{'REV-997'}
{'PUE-347'}
{'LQW-768'}
{'YLN-495'}
{'HJQ-495'}
{'ELG-976'}
{'XUE-826'}
{'MEZ-469'}
{'UDS-151'}
{'MIJ-579'}
{'DGC-290'}
Удалите данные для пациента с именем наблюдения HVR-372
.
hospital('HVR-372',:) = [];
size(hospital)
ans = 1×2
99 7
Массив набора данных имеет тот меньше наблюдения.