合并分类数组
此示例演示了如何合并分类数组。
创建分类数组
创建一个分类数组,其中包含教室 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