MATLAB 帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
合并分类数组中的类别
B = mergecats(A,oldcats)
B = mergecats(A,oldcats,newcat)
B = mergecats(A,oldcats) 将分类数组的两个或多个类别合并为一个类别。默认情况下,mergecats 将 oldcats 中列出的所有类别合并到一个与 oldcats(1) 同名的新类别中。如果 A 的一个元素属于 oldcats 中列出的一个类别,则 B 的对应元素属于 oldcats(1)。
A
oldcats
mergecats
oldcats(1)
B
示例
B = mergecats(A,oldcats,newcat) 将 oldcats 中列出的所有类别合并到一个新类别中,该类别的名称由 newcat 指定。
newcat
全部折叠
创建一个包含各种颜色类别的分类数组。
A = categorical(["pink" "blue" "pink" "red" "blue" "red"])
A = 1×6 categorical pink blue pink red blue red
显示 A 的类别。这三种类别按字母顺序排序。
categories(A)
ans = 3×1 cell {'blue'} {'pink'} {'red' }
将类别 red 和 pink 合并成类别 red。先指定 oldcats 中的 red,以将其用作合并类别。mergecats 将值 pink 替换为 red。
red
pink
oldcats = ["red" "pink"]; B = mergecats(A,oldcats)
B = 1×6 categorical red blue red red blue red
显示 B 的类别。新数组的类别较少。
categories(B)
ans = 2×1 cell {'blue'} {'red' }
创建一个分类数组,其中包含各种服装的类别。
A = categorical(["shirt" "pants" "shoes" "shirt" "dress" "belt"])
A = 1×6 categorical shirt pants shoes shirt dress belt
显示 A 的类别。如果没有指定顺序,则类别按字母顺序排列。
ans = 5×1 cell {'belt' } {'dress'} {'pants'} {'shirt'} {'shoes'}
将类别 belt 和 shoes 合并成名为 other 的新类别。值 other 将替换 belt 和 shoes 的所有实例。
belt
shoes
other
B = mergecats(A,["belt" "shoes"],"other")
B = 1×6 categorical shirt pants other shirt dress other
显示 B 的类别。新数组包含四个类别,且不再按字母顺序排序。other 出现在原来 belt 的位置,因为这是它替换的第一个类别。
ans = 4×1 cell {'other'} {'dress'} {'pants'} {'shirt'}
创建一个有序分类数组。
A = categorical([1 2 3 2 1],1:3,["poor" "fair" "good"],Ordinal=true)
A = 1×5 categorical poor fair good fair poor
显示 A 的类别。类别的数学顺序为 poor < fair < good。
poor < fair < good
ans = 3×1 cell {'poor'} {'fair'} {'good'}
将所有 fair 或 poor 值合并到一个名为 bad 的新类别中。由于 A 是有序数组,因此要合并的类别必须具有连续性。如果它们不具有连续性,则 mergecats 无法创建一组具有数学排序的新类别。
fair
poor
bad
B = mergecats(A,["fair" "poor"],"bad")
B = 1×5 categorical bad bad good bad bad
显示 B 的类别。新数组包含两个采用数学排序法排序的类别:bad < good。
bad < good
ans = 2×1 cell {'bad' } {'good'}
创建一个分类数组。此数组有许多不同类别可以表示“是”和“否”。
C = categorical(["Y" "Yes" "Yeah" "N" "No" "Nope"])
C = 1×6 categorical Y Yes Yeah N No Nope
categories(C)
ans = 6×1 cell {'N' } {'No' } {'Nope'} {'Y' } {'Yeah'} {'Yes' }
您可以使用pattern匹配多个类别名称。例如,要指定以 Y 开头的类别名称,可以使用通配符模式。要创建通配符模式,请使用 wildcardPattern 函数。
pattern
Y
wildcardPattern
将名称以 Y 开头的所有类别合并为一个名为 yes 的类别。然后将名称以 N 开头的所有类别合并为一个名为 no 的类别。因此,具有相同含义的值都属于同一类别。现在,C 只有两个类别。
yes
N
no
C
C = mergecats(C,"Y" + wildcardPattern,"yes"); C = mergecats(C,"N" + wildcardPattern,"no")
C = 1×6 categorical yes yes yes no no no
ans = 2×1 cell {'no' } {'yes'}
输入数组,指定为分类数组。
要合并的类别,指定为字符串数组、字符向量元胞数组或 pattern 标量。
如果 A 是有序数组,则 oldcats 必须指定连续类别的一个子集。如果它们不具有连续性,则 mergecats 无法创建一组具有数学排序的新类别。
如果 A 是非有序数组,则 oldcats 可以指定类别的任何子集。
新类别,指定为字符串标量或字符向量。
全部展开
mergecats 函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
用法说明和限制:
oldcats 输入参量不支持模式表达式。
有关详细信息,请参阅分类数组的代码生成 (MATLAB Coder)。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2013b 中推出
categories | addcats | removecats | iscategory | renamecats | reordercats | setcats | times
categories
addcats
removecats
iscategory
renamecats
reordercats
setcats
times
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处