categorical是一个Matlab数据类型,可将数值分配给有限组的离散类别,比如“高”,“中”,“低”三个组。分类数组能提供高效的数据存储和方便的非数值数据处理,同时为数值保留有意义的名称。分类数组的一个常见用法是识别出table里的指定行数据。
一、将数组数据格式设置为分类类型
可用 B = categorical(A),将A转换成categorical类型的数组B。
也可在导入数据的界面,选则数据类型为categorical。
二、查看包含的分类名
用categories(A)函数查看categorical类型的数组A所包含的类别名称。
三、提取该类别的其他信息
TF = (T.Stations == ‘S2’); %将符合条件的对应位置置1
T(TF,:) %提取相关信息
四、Categorical类型转换(使用中遇到的bug)
在处理卫星观测值时,将观测值信息存成一个table,并将其中的“卫星系统”和“卫星PRN号”设置为categorical类型。如图所示:
提取信息时发生如下bug:将卫星PRN序号存到数组时,传递的值不正确。此处的sv_first里的prn应该是8,但是传输到output数组里时变成了5。
原因是PRN是Categorical类型,直接将其转换成double返回的是类型序号,而非类型名称。
解决方法是先将其转换成string类型再转成double类型。