主要内容

使用分类数组访问数据

选择数据类别

选择基于其价值观的数据通常是有用的。这种类型的数据选择可以涉及创建一个逻辑向量建立在一个变量的值,然后使用该逻辑向量选择在其他变量值的一个子集。您可以创建一个逻辑向量选择数据通过值在某个范围内的数字数组。此外,您可以创建逻辑向量通过寻找特定的离散值。当使用分类数组,您可以很容易地:

  • 从特定的类别选择元素。对于分类数组,使用逻辑运算符= =~ =选择数据,或不是在一个特定的类别。选择类别的数据在一个特定的组,使用ismember函数。

    对于有序分类数组,使用不平等>,> =,<,或< =找到数据类别高于或低于某一类别。

  • 删除的数据在一个特定的类别。使用逻辑运算符包括或排除特定类别的数据。

  • 找到的元素不是定义的类别。分类定义数组显示哪些元素不属于一个类别<定义>。使用isundefined找到观察没有定义的价值函数。

常见的使用分类数组访问数据的方法

这个例子展示了如何使用分类索引和搜索数组。您可以使用分类数组访问数据存储在一个表在一个相似的方式。

加载示例数据

负载样本收集的数据来自100名患者。

负载病人
类属性名称大小字节100岁x1 800双舒张压100 x1 800双性别100 x1 11412细胞高度100 x1 800双LastName 100 x1 11616细胞位置100 x1 14208细胞SelfAssessedHealthStatus 100 x1 11540细胞吸烟者100 x1 100逻辑收缩压100 x1 800双重量100 x1 800双

从细胞特征向量数组创建分类数组

性别位置包含属于类别的数据。每个单元格数组包含特征向量是从一个小设置独特的值(分别显示两个性别和三个位置)。转换性别位置分类数组。

性别=分类(性别);位置=分类(位置);

寻找一个类别的成员

对于分类数组,您可以使用逻辑运算符= =~ =找到的数据,或不是在一个特定的类别。

确定是否有任何患者观察到的位置,Rampart总医院的

(位置= =Rampart总医院的)
ans =逻辑0

没有病人观察Rampart总医院。

寻找一组类别的成员

您可以使用ismember找到数据在一个特定组的类别。创建一个逻辑向量的患者观察到县综合医院VA医院

VA_CountyGenIndex =ismember(位置,{“县综合医院”,VA医院的});

VA_CountyGenIndex是由- 100 - 1逻辑数组包含逻辑真正的(1)分类数组中的每个元素位置这是一个范畴的成员县综合医院VA医院。输出,VA_CountyGenIndex包含76个非零元素。

使用逻辑向量,VA_CountyGenIndex选择的患者观察到县综合医院VA医院

VA_CountyGenPatients = LastName (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 x1细胞{'县综合医院}{圣。玛丽的医疗中心”}

位置是63 - 1有两个类别的分类数组。

删除元素

您可以删除元素的索引。例如,您可以删除的第一个元素位置通过选择其他元素位置(2:结束)。然而,一个更简单的方法是使用删除元素[]

位置(1)= [];总结(位置)
县综合医院38圣玛丽医疗中心24

位置是62 - 1有两个类别的分类数组。删除第一个元素没有影响其他元素相同的类别,不删除类别本身。

检查未定义数据

删除类别县综合医院位置

位置= removecats(位置,“县综合医院”);

显示分类的前八个元素数组,位置

位置(1:8)
ans =8 x1分类圣玛丽医疗中心<定义>圣玛丽医疗中心圣玛丽医疗中心<定义> <定义>圣玛丽医疗中心圣玛丽的医疗中心

删除分类后,县综合医院,以前属于这一类的元素不再属于任何类别定义位置。分类数组表示这些元素未定义的

使用的函数isundefined找到观察,不属于任何类别。

undefinedIndex = isundefined(位置);

undefinedIndex是62 -,- 1分类数组包含逻辑真正的(1对所有未定义的元素)位置

未定义的元素集

使用总结函数来打印未定义的元素的数量位置

总结(位置)
圣玛丽医疗中心24 <定义> 38

的第一个元素位置属于的类别,圣玛丽的医疗中心。设置第一个元素未定义的所以它不再属于任何类别。

位置(1)=“<定义>”;总结(位置)
圣玛丽医疗中心23日<定义> 39

你可以选择元素未定义的没有删除一个类别或改变其他元素的类别。组元素未定义的指示元素的值是未知的。

Preallocate分类与定义数组元素

您可以使用未定义的元素preallocate分类数组大小的更好的性能。创建一个分类数组与已知位置的元素。

definedIndex = ~ isundefined(位置);newLocation =位置(definedIndex);总结(newLocation)
圣玛丽医疗中心23

扩大的规模newLocation所以它是一个200 -,- 1分类数组。组最后一个新元素未定义的。所有其他的新元素也将是未定义的。23原始元素的值。

newLocation (200) =“<定义>”;总结(newLocation)
圣玛丽的医学中心23 <定义> 177

newLocation有空间值以后你计划存储在数组中。

另请参阅

||||||

相关的例子

更多关于