主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

isprotected

确定分类数组的类别是否受保护

说明

如果分类数组的类别受保护,则 tf = isprotected(A) 返回逻辑值 1 (true)。否则,isprotected 将返回逻辑值 0 (false)。

  • true - 在向 B 赋新值时,这些值必须属于现有类别之一。因此,您只能合并具有相同类别的数组。要向 B 添加新类别,必须使用 addcats 函数。

  • false - 在向 B 赋新值时,类别会自动更新。因此,您可以合并具有不同类别的(非有序)分类数组。类别可更新,以便同时包含这两个数组中的类别。

示例

示例

全部折叠

创建一个大小包含 10 个对象的分类数组。对值 SML 应用名称 smallmediumlarge

valueset = ["S","M","L"];
catnames = ["small","medium","large"];
A = categorical(["M";"L";"S";"S";"M";"L";"M";"L";"M";"S"], ...
                valueset,catnames,Ordinal=true)
A = 10×1 categorical
     medium 
     large 
     small 
     small 
     medium 
     large 
     medium 
     large 
     medium 
     small 

显示 A 的类别。

categories(A)
ans = 3×1 cell
    {'small' }
    {'medium'}
    {'large' }

确定 A 的类别是否受保护。

tf = isprotected(A)
tf = logical
   1

由于 A 是有序分类数组,因此类别受保护。如果试图添加不属于现有类别之一的新值(例如 A(11) = "xlarge"),则返回一个错误。

先使用 addcatsxlarge 添加新类别。

A = addcats(A,"xlarge",After="large");

您可以为 xlarge 添加值,因为该类别现在已存在。

A(11) = "xlarge"
A = 11×1 categorical
     medium 
     large 
     small 
     small 
     medium 
     large 
     medium 
     large 
     medium 
     small 
     xlarge 

A 现在是包含四个类别的 11×1 分类数组,满足 small < medium < large < xlarge

输入参数

全部折叠

输入数组,指定为分类数组。

有序分类数组的类别始终受保护。

扩展功能

全部展开

版本历史记录

在 R2013b 中推出