主要内容

使用标称和序数数组的索引和搜索

请注意

名义上的序数不推荐使用阵列数据类型。若要表示有序和无序的离散非数字数据,请使用分类数组数据类型。

索引按类别

按类别或组建立索引和搜索数据通常很有用。如果将类别存储为字符向量或单元格数组中的标签字符数组时,索引和搜索类别可能会很困难。当使用标称或序数数组时,您可以轻松地:

  • 索引特定类别中的元素。对于标称数组和序数数组,都可以使用逻辑运算符==~=将属于或不属于某个特定类别的观察结果编入索引。对于具有编码顺序的序数数组,您还可以使用不等式,>>=<,< =,在特定类别之上或之下的类别中寻找观察结果。

  • 搜索一个类别的成员。除了逻辑运算符==,你可以使用ismember在一个特定的群体中寻找观察结果。

  • 查找不在已定义类别中的元素。标称数组和序数数组表示哪些元素不属于定义的类别<定义>.您可以使用isundefined寻找缺失类别的观察结果。

  • 删除属于特定类别的观察结果。您可以使用逻辑操作符从特定类别中包含或排除观察结果。即使您从一个类别中删除了所有的观察,类别级别仍然是定义的,除非您使用droplevels

公共索引和搜索方法

这个例子展示了几种常见的索引和搜索方法。

加载示例数据。

负载carsmall

转换字符数组,起源,转换为标称数组。这个变量包含每辆样品车的原产国或制造商。

起源=名义(起源);

在一个类别中搜索观察结果。确定样品中是否有加拿大制造的汽车。

任何(起源= =“加拿大”
ans =逻辑0

加拿大没有生产样车。

列出国家的水平起源

getlevels(起源)
ans =1 x6名义法国德国意大利日本瑞典美国

在特定类别中的索引元素。绘制美国产汽车加速度测量的直方图

图();直方图(加速度(起源= =“美国”)标题(“美国制造的汽车加速”

图中包含一个轴对象。标题为“美国制造汽车的加速”的轴对象包含一个直方图类型的对象。

删除属于特定类别的观察结果。删除所有瑞典产的汽车起源

起源=来源(来源~ =“瑞典”);任何(ismember(起源、“瑞典”))
ans =逻辑0

瑞典制造的汽车被删除了起源,但瑞典还是一级的起源

getlevels(起源)
ans =1 x6名义法国德国意大利日本瑞典美国

删除瑞典起源

起源= droplevels(起源、“瑞典”);getlevels(起源)
ans =1 x5的名义法国,德国,意大利,日本,美国

检查不属于定义类别的观察结果。得到法国制造的汽车的指数。

第九=找到(起源= =“法国”
第九=4×111 27 39 61

有四辆来自法国的汽车。删除法国起源

起源= droplevels(起源、“法国”);

这将返回一个警告,指示您正在删除一个包含元素的类别级别。这些观察不再属于一个明确的范畴,由未定义的

起源(第九)
ans =4 x1名义   

您可以使用isundefined搜索未定义类别的观察结果。

找到(isundefined(起源))
ans =4×111 27 39 61

这些指数与属于这一类的观察结果相对应法国在这一类别被删除之前起源

另请参阅

||

相关的例子

更多关于