选择基于其值的数据往往是有用的。这种类型的数据的选择可涉及在一个变量创建一个基于值的逻辑向量,然后使用该逻辑矢量来选择其它变量值的子集。可以创建用于通过在一定范围内的一个数值数组发现值中选择数据的逻辑矢量。此外,您可以创建查找特定的离散值逻辑载体。当使用分类阵列,您可以轻松地:
从特定类别中选择元素。对于分类阵列,使用逻辑运算符= =
或~ =
选择属于或不属于特定类别的数据。要选择特定类别中的数据,请使用ismember
功能。
对于有序分类阵列,利用不平等>
,> =
,<
, 要么< =
在一个特定类别之上或之下的类别中查找数据。
删除数据是在一个特定的类别。使用逻辑运算符来包括或排除从特定类别的数据。
查找不在一个定义的类别元素。分类数组指示哪些元素不通过属于一个定义的类别<定义>
。使用isundefined
函数查找未定义值的观察值。
这个例子说明了如何索引并用分类搜索阵列。可以访问使用存储在表内以类似的方式明确的数组中的数据。
装入样本数据
加载样本数据来自100名患者聚集。
加载病人谁是
名称大小字节类属性年龄100X1 800双舒张100X1 800双性别100X1 12212细胞身高100X1 800双姓100X1 12416细胞位置100X1 15008细胞SelfAssessedHealthStatus 100X1 12340细胞吸烟者100X1 100逻辑收缩期100X1 800双重量100X1 800双
从字符向量的单元格数组创建分类数组
性别
和位置
包含在类属数据。每个单元阵列中包含从一个小组唯一值的(分别表示两种性别和三个位置)被字符向量。兑换性别
和位置
要分类排列。
性别=分类(性别);位置=分类(位置);
搜索单个类别的成员
对于分类数组,可以使用逻辑运算符= =
和~ =
查找属于或不属于某个特定类别的数据。
确定是否有在该位置观察到的任何患者,Rampart总医院的
。
任何(位置==Rampart总医院的)
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(位置,“县综合医院”);
显示分类数组的前8个元素,位置
。
位置(1:8)
ans =8 x1分类数组圣玛丽医疗中心<未定义>圣玛丽医疗中心圣玛丽医疗中心<未定义> <未定义>圣玛丽医疗中心圣玛丽医疗中心
除去类别后,县综合医院
,以前属于该类别的元素不再属于为的任何类别位置
。分类数组表示这些元素作为未定义的
。
使用的函数isundefined
寻找不属于任何类别的观察结果。
undefinedIndex = isundefined(位置);
undefinedIndex
一个62乘1的分类数组是否包含逻辑真正的
(1
中的所有未定义元素位置
。
未定义的元素集
使用摘要
函数来打印在未定义的元素的数量位置
。
摘要(位置)
圣玛丽医疗中心24 <未定义> 38
的第一个元素位置
所属的类别,圣玛丽医疗中心
。设置第一个元素为未定义的
因此,它不再属于任何类别。
位置(1)=' <定义> ';摘要(位置)
圣玛丽医疗中心23 <未定义> 39
您可以选择元素未定义的
而不去除类别或改变其它元素的类别。集合中的元素是未定义的
以表示与未知值的元素。
预先分配带有未定义元素的分类数组
您可以使用undefined元素预分配一个明确的数组的大小有更好的表现。创建具有与仅已知位置元素分类数组。
definedIndex = ~ isundefined(位置);newLocation =位置(definedIndex);摘要(newLocation)
圣玛丽医疗中心
扩大规模newLocation
因此,它是一个200×1阵列分类。设置上一个新的元素是未定义的
。所有其他新元素也被设置为未定义的
。23个原创要素保持他们的价值观。
newLocation (200) =' <定义> ';摘要(newLocation)
圣玛丽医疗中心23 <未定义> 177
newLocation
有适合你的空间规划阵列中存储后的值。
任何
|分类
|类别
|柱状图
|isundefined
|removecats
|摘要