根据数据的值选择数据通常是有用的。这种类型的数据选择可以基于一个变量中的值创建逻辑向量,然后使用该逻辑向量选择其他变量中的值子集。您可以通过查找位于一定范围内的数值数组中的值来创建用于选择数据的逻辑向量。此外,您可以通过查找特定的离散值来创建逻辑向量。当使用分类数组,你可以很容易:
选择特定类别的元素。对于分类阵列,使用逻辑运算符==
要么〜=
来选择是,或者不在,特定类别的数据。在类别中的特定组中选择的数据,使用ismember
功能。
对于有序分类阵列,利用不平等>
,> =
,<
, 要么<=
找到在类别的上方或下方的特定类别的数据。
删除属于特定类别的数据。使用逻辑运算符来包括或排除从特定类别的数据。
查找不在一个定义的类别元素。分类数组指示哪些元素不通过属于一个定义的类别<未定义>
。使用isundefined
功能找到没有限定值的观察。
这个例子说明了如何索引并用分类搜索阵列。可以访问使用存储在表内以类似的方式明确的数组中的数据。
装入样本数据
加载样本数据来自100名患者聚集。
加载耐心谁是
名称大小字节类属性年龄100X1 800双舒张100X1 800双性别100X1 11412细胞身高100X1 800双姓100X1 11616细胞位置100X1 14208细胞SelfAssessedHealthStatus 100X1 11540细胞吸烟者100X1 100逻辑收缩期100X1 800双重量100X1 800双
从特征向量单元阵列创建范畴阵列
性别
和位置
包含在类属数据。每个单元阵列中包含从一个小组唯一值的(分别表示两种性别和三个位置)被字符向量。兑换性别
和位置
要分类排列。
性别=分类(性别);位置=绝对的(位置);
一项单一类别的成员
对于分类数组,您可以使用逻辑运算符==
和〜=
发现是,或不是,一个特定类别的数据。
确定是否有在该位置观察到的任何患者,“古城墙总医院”
。
任何(位置==“古城墙总医院”)
ANS =合乎逻辑0
有没有在古城墙总医院观察病人。
搜索类别的组成员
您可以使用ismember
找到在类别中的特定组的数据。创建用于在所观察到的患者的逻辑矢量县综合医院
要么VA医院
。
VA_CountyGenIndex =...ismember(位置,{“县综合医院”,“VA医院”});
VA_CountyGenIndex
是含有逻辑100由1逻辑阵列真正
(1
)为分类阵列中的每个元件位置
这是该类别的成员县综合医院
要么VA医院
。输出,VA_CountyGenIndex
包含76个非零元素。
使用逻辑向量,VA_CountyGenIndex
选择姓
患者在任一观察县综合医院
要么VA医院
。
VA_CountyGenPatients =名字(VA_CountyGenIndex);
VA_CountyGenPatients
是字符向量的76×1单元阵列。
在一个特定的类别绘制选择元素
使用摘要
功能打印包含类别名称和每个类别中的元素数量的摘要。
摘要(位置)
县综合医院39圣玛丽医疗中心24 VA医院37
位置
是具有三个类别100×1阵列分类。县综合医院
发生在39个元素,圣玛丽医疗中心
在24个元件,和VA医院
在37层的元件。
使用摘要
功能打印的汇总性别
。
摘要(性别)
女53男47
性别
是具有两个类别100×1阵列分类。女
发生在53种元素和男
发生在47个元素。
使用逻辑运算符==
只访问女性患者的年龄。然后绘制这个数据的直方图。
图()直方图(年龄(性别=='女'))标题(“女患者年龄”)
直方图(年龄(性别== '女'))
地块为53名女患者的年龄数据。
从一个特定的类别删除数据
您可以使用逻辑运算符将包含或排除特定类别的数据。在删除观察到的所有患者VA医院
从工作空间的变量,年龄
和位置
。
年龄=年龄(位置〜=“VA医院”);位置=位置(位置〜=“VA医院”);
现在,年龄
是一个63×1数字数组,并且位置
是一个63×1阵列分类。
列出的类别位置
,以及在每个类别中的元素数。
摘要(位置)
县综合医院39圣玛丽医疗中心24 VA医院0
在观察到患者VA医院
从被删除位置
但VA医院
仍然是一个类别。
使用removecats
函数删除VA医院
从类别位置
。
位置= removecats(位置,“VA医院”);
验证类别,VA医院
, 去掉了。
类别(位置)
ANS =2×1单元{“县综合医院”} {“圣玛丽的医疗中心'}
位置
是具有两个类别的63×1阵列分类。
删除元素
您可以通过删除索引的元素。例如,你可以删除的第一要素位置
通过用选择的元素的其余部分位置(2:结束)
。但是,要删除元素更简单的方法是使用[]
。
位置(1)= [];摘要(位置)
县综合医院38圣玛丽医疗中心24
位置
是具有两类一个62×1阵列分类。删除第一个元素对来自同一类别的其他元素没有影响,不会删除该类别本身。
检查不定数据
删除类别县综合医院
从位置
。
位置= removecats(位置,“县综合医院”);
显示分类数组的第一个八张素,位置
。
位置(1:8)
ANS =8X1分类圣玛丽医疗中心<未定义>圣玛丽医疗中心圣玛丽医疗中心<未定义> <未定义>圣玛丽医疗中心圣玛丽医疗中心
除去类别后,县综合医院
,元件先前属于该类别不再属于定义为任何类别位置
。分类数组表示这些元素作为未定义
。
使用功能isundefined
发现不属于任何类别的意见。
undefinedIndex = isundefined(位置);
undefinedIndex
是含有逻辑一个62×1阵列分类真正
(1
)所有未定义元素位置
。
集中未定义的元素
使用摘要
函数来打印在未定义的元素的数量位置
。
摘要(位置)
圣玛丽医疗中心24 <未定义> 38
的第一要素位置
所属的类别,圣玛丽医疗中心
。设置的第一个元素是未定义
因此,它不再属于任何类别。
位置(1)='<未定义>';摘要(位置)
圣玛丽医疗中心23 <未定义> 39
您可以选择的元素未定义
而不去除类别或改变其它元素的类别。集合中的元素是未定义
以表示与未知值的元素。
预分配范畴阵列与undefined元素
您可以使用undefined元素预分配一个明确的数组的大小有更好的表现。创建具有与仅已知位置元素分类数组。
definedIndex =〜isundefined(位置);newLocation =位置(definedIndex);摘要(newLocation)
圣玛丽医疗中心23
扩大规模newLocation
所以它是一个200×1的分类数组。将最后一个新元素设置为未定义
。所有其他新的元素也被设定为未定义
。23个原创要素保持他们的价值观。
newLocation(200)='<未定义>';摘要(newLocation)
圣玛丽医疗中心23 <未定义> 177
newLocation
有适合你的空间规划阵列中存储后的值。
任何
|明确的
|类别
|直方图
|isundefined
|removecats
|摘要