请注意
的名义上的
和序数
不推荐使用阵列数据类型。若要表示有序和无序的离散非数字数据,请使用分类数组数据类型。
按类别或组建立索引和搜索数据通常很有用。如果将类别存储为字符向量或单元格数组中的标签字符
数组时,索引和搜索类别可能会很困难。当使用标称或序数数组时,您可以轻松地:
索引特定类别中的元素。对于标称数组和序数数组,都可以使用逻辑运算符==
和~=
将属于或不属于某个特定类别的观察结果编入索引。对于具有编码顺序的序数数组,您还可以使用不等式,>
,>=
,<
,< =
,在特定类别之上或之下的类别中寻找观察结果。
搜索一个类别的成员。除了逻辑运算符==
,你可以使用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
这些指数与属于这一类的观察结果相对应法国
在这一类别被删除之前起源
.