Main Content

isprotected

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

説明

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

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

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

すべて折りたたむ

10 個のオブジェクトのサイズを含む categorical 配列を作成します。値 'S''M' および '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 = 10x1 categorical
     medium 
     large 
     small 
     small 
     medium 
     large 
     medium 
     large 
     medium 
     small 

A は 10 行 1 列の categorical 配列です。

A のカテゴリを表示します。

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

A のカテゴリが保護されているかどうかを判別します。

tf = isprotected(A)
tf = logical
   1

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

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

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

A は保護されていて、これで xlarge には既にカテゴリがあるため、対応する値を追加できます。

A(11) = 'xlarge'
A = 11x1 categorical
     medium 
     large 
     small 
     small 
     medium 
     large 
     medium 
     large 
     medium 
     small 
     xlarge 

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

入力引数

すべて折りたたむ

categorical 配列。ベクトル、行列または多次元配列として指定します。

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

拡張機能

バージョン履歴

R2013b で導入