合并分类数组
此示例演示了如何合并分类数组。
创建分类数组
创建一个分类数组,其中包含教室 A 中的 25 个学生的首选午餐饮料。
rng("default") A = randi(3,[25,1]); A = categorical(A,1:3,["milk" "water" "juice"])
A = 25×1 categorical
juice
juice
milk
juice
water
milk
milk
water
juice
juice
milk
juice
juice
water
juice
milk
water
juice
juice
juice
water
milk
juice
juice
juice
汇总分类数组。
summary(A)
A: 25×1 categorical
milk 6
water 5
juice 14
<undefined> 0
创建另一个分类数组,其中包含教室 B 中的 28 个学生的首选饮料。
B = randi(3,[28,1]); B = categorical(B,1:3,["milk" "water" "juice"])
B = 28×1 categorical
juice
juice
water
water
milk
juice
milk
milk
milk
milk
juice
juice
milk
juice
milk
water
water
juice
juice
milk
water
water
water
juice
juice
milk
juice
water
汇总分类数组。
summary(B)
B: 28×1 categorical
milk 9
water 8
juice 11
<undefined> 0
串联分类数组
将教室 A 和 B 中的数据串联为一个单独的分类数组 Group1。
Group1 = [A;B]
Group1 = 53×1 categorical
juice
juice
milk
juice
water
milk
milk
water
juice
juice
milk
juice
juice
water
juice
milk
water
juice
juice
juice
water
milk
juice
juice
juice
juice
juice
water
water
milk
⋮
汇总分类数组 Group1。
summary(Group1)
Group1: 53×1 categorical
milk 15
water 13
juice 25
<undefined> 0
创建具有不同类别的分类数组
创建一个分类数组 Group2,其中包含为其提供了额外的苏打饮料选择的 50 个学生的数据。
Group2 = randi(4,[50,1]); Group2 = categorical(Group2,1:4,["juice" "milk" "soda" "water"])
Group2 = 50×1 categorical
juice
juice
milk
water
milk
soda
juice
water
milk
soda
soda
water
water
soda
juice
juice
milk
water
milk
water
juice
water
milk
juice
milk
soda
milk
milk
water
soda
⋮
汇总分类数组。
summary(Group2)
Group2: 50×1 categorical
juice 12
milk 14
soda 10
water 14
<undefined> 0
串联具有不同类别的数组
串联 Group1 和 Group2 中的数据。
students = [Group1;Group2]
students = 103×1 categorical
juice
juice
milk
juice
water
milk
milk
water
juice
juice
milk
juice
juice
water
juice
milk
water
juice
juice
juice
water
milk
juice
juice
juice
juice
juice
water
water
milk
⋮
汇总生成的分类数组。串联操作会将第二个输入所独有的类别 soda 追加到第一个输入的类别列表的末尾:milk、water、juice、soda。
summary(students)
students: 103×1 categorical
milk 29
water 27
juice 37
soda 10
<undefined> 0
要更改分类数组中的类别顺序,请使用 reordercats 函数。
students = reordercats(students,["juice" "milk" "water" "soda"]); categories(students)
ans = 4×1 cell
{'juice'}
{'milk' }
{'water'}
{'soda' }
分类数组的并集
要查找 Group1 和 Group2 中的唯一响应,请使用 union 函数。
C = union(Group1,Group2)
C = 4×1 categorical
milk
water
juice
soda
union 返回 Group1 和 Group2 的合并值并且没有重复项。在本例中,C 等效于串联的类别 students。
此示例中的所有分类数组都不是有序的。要合并有序分类数组,它们必须具有相同的类别集合,包括其顺序。
另请参阅
categorical | categories | summary | union | cat | horzcat | vertcat