メインコンテンツ

isprotected

categorical 配列のカテゴリが保護されているかどうかを判別する

説明

tf = isprotected(A) は、categorical 配列のカテゴリが保護されている場合、logical 1 (true) を返します。それ以外の場合、isprotected は logical 0 (false) を返します。

  • true — 新しい値を B に代入する場合、値は既存のカテゴリの 1 つに属していなければなりません。したがって、同じカテゴリをもつ配列のみを組み合わせることができます。新しいカテゴリを B に追加するには、関数 addcats を使用しなければなりません。

  • false — 新しい値を B に代入すると、カテゴリは自動的に更新されます。したがって、異なるカテゴリをもつ (非順序) categorical 配列を組み合わせることができます。両方の配列のカテゴリを含めてカテゴリを更新することができます。

すべて折りたたむ

10 個のオブジェクトのサイズを含む categorical 配列を作成します。値 SM および L に対して、名前 smallmedium および large を使用します。

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 は順序 categorical 配列であるため、カテゴリは保護されています。たとえば、A(11) = "xlarge" のように、既存のカテゴリのいずれにも属さない新しい値を追加しようとすると、エラーが返されます。

まず addcats を使って、xlarge 用の新しいカテゴリを追加します。

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 は、small < medium < large < xlarge である 4 つのカテゴリを含む 11 行 1 列の categorical 配列になりました。

入力引数

すべて折りたたむ

入力配列。categorical 配列として指定します。

順序 categorical 配列のカテゴリは常に保護されます。

拡張機能

すべて展開する

バージョン履歴

R2013b で導入