このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
分类
は,離散カテゴリの有限集合からの値をもつデータを格納するためのデータ型で,自然な順序が付いていることがあります。すべての直言配列でカテゴリの順序を指定および変更することができます。ただし,“順序”绝对配列は,カテゴリに数学的な順序が付けられているものとしてのみ取り扱うことができます。関数最小值
や马克斯
または関係演算(“より大きい”や”より小さい”など)を利用する場合は,順序分类配列を使用してください。
ペットのカテゴリの離散集合{‘狗’‘猫’‘鸟’}
には意味のある数学的な順序は付けられていません。任意のカテゴリ順序を自由に使用することができ,それによって関連付けられているデータの意味が変更されることはありません。たとえば,宠物=分类({‘鸟’,‘猫’,‘狗’,‘狗’,‘猫’})
で作成された直言配列では,カテゴリはアルファベット順で{‘鸟’‘猫’‘狗’}
というように並べられます。カテゴリの順序を{‘狗’‘猫’‘鸟’}
のように指定または変更することができ,それによってデータの意味が変更されることはありません。
“順序”绝对配列には,意味のある数学的な順序が付けられているカテゴリが含まれます。たとえば,サイズのカテゴリの離散集合{‘小’,‘中等’,‘大’}
には数学的な順序小<中<大
が付けられています。最初に表示されるカテゴリが最も小さく,最後に表示されるカテゴリが最も大きいものになります。順序分类配列内のカテゴリの順序は順序 categorical 配列の関係比較の結果に影響します。
この例では,関数分类
に名前と値のペアの引数“顺序”,真的
を指定して順序分类配列を作成する方法を示します。
文字ベクトルの细胞配列からの順序分类配列
順序分类配列大小
を文字ベクトルの细胞配列一个
から作成します。一意の値のベクトルとして指定されるvalueset
を使用して,大小
のカテゴリを定義します。
一个= {“媒介”“大”;“小”“媒介”;“大”“小”};valueset = {“小”,“媒介”,“大”};大小=分类(valueset,“顺序”,真正的)
大小=3 x2分类中、大号、小号、大号、小号
大小
は,小<中<大
である3つのカテゴリを含む3行2列の順序分类配列です。valueset
内の値の順序は大小
のカテゴリの順序になります。
整数からの順序分类配列
整数の配列から同等の直言配列を作成します。値1
、2
および3.
を使用して,カテゴリ小
、媒介
、大
をそれぞれ定義します。
A2 = [2 3;1 - 2;3 1];valueset = 1:3;catnames = {“小”,“媒介”,“大”};sizes2 =分类(A2, valueset catnames,“顺序”,真正的)
sizes2 =3 x2分类中、大号、小号、大号、小号
大小
とsizes2
を比較します。
isequal(大小、sizes2)
ans =逻辑1
大小
とsizes2
は,同じ順序のカテゴリをもつ同等の直言配列です。
非順序分类配列から順序分类配列への変換
非順序分类配列を文字ベクトルの细胞配列一个
から作成します。
sizes3 =分类(一)
sizes3 =3 x2分类中、大号、小号、大号、小号
绝对配列が順序配列であるかどうかを判定します。
isordinal (sizes3)
ans =逻辑0
sizes3
は3つのカテゴリ{“大”,“中等”,“小”}
をもつ非順序分类配列です。sizes3
のカテゴリは,一个
からの並べ替えられた一意の値です。別のカテゴリ順序を指定するには,入力引数valueset
を使用しなければなりません。
sizes3
を小<中<大
という順序の順序分类配列に変換します。
sizes3 =分类(sizes3, {“小”,“媒介”,“大”},“顺序”,真正的);
これで,sizes3
は大小
およびsizes2
と同等の3行2列の順序分类配列になりました。
2つの直言配列を結合または比較するには,両方の入力配列のカテゴリ集合が,順序を含め,同一でなければなりません。それだけでなく,順序分类配列は常に保護されています。そのため,値を順序分类配列に代入する場合,その値は既存のいずれかのカテゴリに属していなければなりません。詳細は,保護された直言配列の操作を参照してください。