• Matlab之数组、包含分配给类别的值函数categorical


    一、功能

    categorical 是为一组有限的离散类别(例如 High、Med 和 Low)赋值的数据类型。这些类别可以采用您指定的数学排序,例如 High > Med > Low,但这并非必须。分类数组可用来有效地存储并方便地处理非数值数据,同时还为数值赋予有意义的名称。分类数组的常见用法是用来指定构成表的各组行。

    二、语法

    语法1

    B = categorical(A) 根据数组 A 创建分类数组。B 的类别是 A 的唯一值且经过排序。

    语法2

    B = categorical(A,valueset) 为 valueset 中的每个值创建一个类别。B 的类别与 valueset 的值具有相同的顺序。

    您可以使用 valueset 来包含 A 中不存在的值的类别。反之,如果 A 包含 valueset 中不存在的任何值,则 B 的对应元素为未定义。

    语法3

    B = categorical(A,valueset,catnames) 通过将 valueset 中的类别值与 catnames 中的名称匹配来命名 B 中的类别。

    语法4

    B = categorical(A,___,Name,Value) 创建分类数组,其中通过一个或多个 Name,Value 对组参数指定其他选项。您可以包括上述语法中的任何输入参数。

    例如,要指示类别采用数学排序,请指定 'Ordinal',true。

    三、输入参数

    A — 输入数组

    数值数组 | 逻辑数组 | 分类数组 | 日期时间数组 | 持续时间数组 | 字符串数组 | 字符向量元胞数组

    输入数组,指定为数值数组、逻辑数组、分类数组、日期时间数组、持续时间数组、字符串数组或字符向量元胞数组。

    categorical 会删除作为字符串或字符向量的输入值中的前导和尾部空格。

    如果 A 包含缺失值,则 B 的相应元素未定义,并显示为 。categorical 函数可将下列值转换为未定义的类别值:

    数值数组和持续时间数组中的 NaN

    字符串数组中的缺失字符串 () 或空字符串 ("")

    字符向量元胞数组中的空字符向量 ('')

    日期时间数组中的 NaT

    分类数组中未定义的值 ()

    对于未定义的值,B 没有对应的类别。要为缺失值或未定义的值创建显式类别,必须在 catnames 中给出所需的类别名称,并在 valueset 中给出缺失值作为对应的值。

    A 还可以是具有以下类方法的对象数组:

    unique

    eq

    valueset — 类别

    unique(A) (默认) | 由唯一值组成的向量

    类别,指定为由唯一值组成的向量。valueset 的数据类型和 A 的数据类型必须相同,A 为字符串数组时除外。在这种情况下,valueset 可以是字符串数组或字符向量元胞数组。

    categorical 会删除作为字符串或字符向量的 valueset 元素中的前导和尾部空格。

    catnames — 类别名称

    字符向量元胞数组 | 字符串数组

    类别名称,指定为字符向量元胞数组或字符串数组。如果不指定 catnames 输入参数,categorical 将使用 valueset 中的值作为类别名称。

    要将 A 中多个不同的值合并为 B 中的单个类别,请包括与这些值对应的、完全一样的名称。

    四、示例

    首先,创建包含温度读数、日期和台站标签的阵列。

    1. Temps = [58; 72; 56; 90; 76];
    2. Dates = {'2017-04-17';'2017-04-18';'2017-04-30';'2017-05-01';'2017-04-27'};
    3. Stations = {'S1';'S2';'S1';'S3';'S2'};

    将桩号转换为类别数组。

    Stations = categorical(Stations)

    显示类别。三个桩号标签是类别。

    categories(Stations)

    创建包含温度、日期和桩号标签的表。

    T = table(Temps,Dates,Stations)

    显示从站S2获取的读数。可以使用==运算符查找等于S2的桩号值。然后使用逻辑索引选择包含来自站点S2的数据的表行。

    1. TF = (T.Stations == 'S2');
    2. T(TF,:)

    输出的结果:

  • 相关阅读:
    Java多线程 常见面试题
    huggingface中Bert模型的简单使用
    20220810NOI模拟赛--考后总结
    第五章 多态
    牛客算法题:B-装进肚子
    单舵轮AGV里程计算公式
    在 openresty 中使用 capnp lua 库
    树莓派4b装系统到运行 Blazor Linux 本地程序全记录
    安装配置 zookeeper(单机版)
    docker容器的网络模式和docker数据卷
  • 原文地址:https://blog.csdn.net/weixin_45770896/article/details/133763782