Этот пример показывает, как выбрать наблюдение или подмножество наблюдений от массива набора данных.
Загрузите демонстрационный массив набора данных, 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
Массив набора данных имеет тот меньше наблюдения.