MATLAB中的合并分类数组

目录

创建分类数组

串联分类数组

创建具有不同类别的分类数组

串联具有不同类别的数组

分类数组的并集


此示例演示了如何合并两个分类数组。

创建分类数组

创建分类数组 A,其中包含教室 A 中的 25 个学生的首选午餐饮料。

cs 复制代码
rng('default')
A = randi(3,[25,1]);
A = categorical(A,1:3,{'milk' 'water' 'juice'});

A 是一个 25×1 的分类数组,包含三个不同的类别:milk、water 和 juice。

汇总分类数组A。

cpp 复制代码
summary(A)
     milk        6 
     water       5 
     juice      14 

教室 A 中的六个学生喜欢牛奶,五个学生喜欢水,十四个学生喜欢果汁。

创建另外一个分类数组 B,其中包含教室 B 中的 28 个学生的首选饮料。

cs 复制代码
B = randi(3,[28,1]);
B = categorical(B,1:3,{'milk' 'water' 'juice'});

B 是一个 28×1 的分类数组,包含与 A 相同的类别。

汇总分类数组 B

cs 复制代码
summary(B)
     milk        9 
     water       8 
     juice      11 

教室 B 中的九个学生喜欢牛奶,八个学生喜欢水,七个学生喜欢果汁。

串联分类数组

将教室 A 和 B 中的数据串联为一个单独的分类数组 Group1。

cs 复制代码
Group1 = [A;B];

汇总分类数组 Group1。

cs 复制代码
summary(Group1)
     milk       15 
     water      13 
     juice      25 

Group1 是一个包含以下三个类别的 53×1 分类数组:milk、water 和 juice。

创建具有不同类别的分类数组

创建一个分类数组 Group2,其中包含为其提供了额外的苏打饮料选择的 50 个学生的数据。

cpp 复制代码
Group2 = randi(4,[50,1]);
Group2 = categorical(Group2,1:4,{'juice' 'milk' 'soda' 'water'});

汇总分类数组 Group2。

cpp 复制代码
summary(Group2)
     juice      12 
     milk       14 
     soda       10 
     water      14 

Group2 是一个包含以下四个类别的 50×1 分类数组:juice、milk、soda 和 water。

串联具有不同类别的数组

串联 Group1 和 Group2 中的数据。

cpp 复制代码
students = [Group1;Group2];

汇总生成的分类数组 students。

cs 复制代码
summary(students)
     milk       29 
     water      27 
     juice      37 
     soda       10 

串联操作会将第二个输入所独有的类别 soda 追加到第一个输入的类别列表的末尾:milk、water、juice、soda。

使用 reordercats 更改分类数组 students 中的类别顺序。

cs 复制代码
students = reordercats(students,{'juice','milk','water','soda'});

categories(students)
ans = 4x1 cell
    {'juice'}
    {'milk' }
    {'water'}
    {'soda' }

分类数组的并集

使用函数 union 可查找 Group1 和 Group2 中的唯一响应。

cs 复制代码
C = union(Group1,Group2)
C = 4x1 categorical
     milk 
     water 
     juice 
     soda 

union 返回 Group1 和 Group2 的合并值并且没有重复项。在本例中,C 等效于串联的类别 students。

此示例中的所有分类数组都不是有序的。要合并有序分类数组,它们必须具有相同的类别集合,包括其顺序。

相关推荐
侃侃_天下2 天前
最终的信号类
开发语言·c++·算法
echoarts2 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Aomnitrix2 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
每天回答3个问题2 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说2 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
小莞尔2 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
我是菜鸟0713号2 天前
Qt 中 OPC UA 通讯实战
开发语言·qt
JCBP_2 天前
QT(4)
开发语言·汇编·c++·qt·算法
Brookty2 天前
【JavaEE】线程安全-内存可见性、指令全排序
java·开发语言·后端·java-ee·线程安全·内存可见性·指令重排序
百锦再2 天前
[特殊字符] Python在CentOS系统执行深度指南
开发语言·python·plotly·django·centos·virtualenv·pygame