reordercats
categorical
配列のカテゴリの並べ替え
説明
例
非順序 categorical 配列のカテゴリのアルファベット順表示
2 つの categorical 配列 X
および Y
を作成します。
X = categorical({'frog';'cat';'cat';'ant';'frog'})
X = 5x1 categorical
frog
cat
cat
ant
frog
Y = categorical({'deer';'bear';'eagle';'deer'})
Y = 4x1 categorical
deer
bear
eagle
deer
X
は 5 行 1 列の categorical 配列です。X
のカテゴリは、次の配列から並べ替えられた一意の値です。{'ant';'cat';'frog'}
Y
は 4 行 1 列の categorical 配列です。Y
のカテゴリは、次の配列から並べ替えられた一意の値です。{'bear';'deer';'eagle'}
X
と Y
を 1 つの categorical 配列 A
に連結します。
A = [X;Y]
A = 9x1 categorical
frog
cat
cat
ant
frog
deer
bear
eagle
deer
vertcat
は、Y
からの値を X
からの値に追加します。
categorical 配列 A
のカテゴリを一覧表示します。
acats = categories(A)
acats = 6x1 cell
{'ant' }
{'cat' }
{'frog' }
{'bear' }
{'deer' }
{'eagle'}
vertcat
は、Y
のカテゴリを X
からのカテゴリに追加します。A
のカテゴリは、アルファベット順に "表示されません"。
A
のカテゴリをアルファベット順に並べ替えます。
B = reordercats(A)
B = 9x1 categorical
frog
cat
cat
ant
frog
deer
bear
eagle
deer
出力 categorical 配列 B
の要素とその順序は入力 categorical 配列 A
と同じです。
categorical 配列 B
のカテゴリを一覧表示します。
bcats = categories(B)
bcats = 6x1 cell
{'ant' }
{'bear' }
{'cat' }
{'deer' }
{'eagle'}
{'frog' }
B
のカテゴリは、アルファベット順に表示されます。
非 categorical 配列でのカテゴリの順序の変更
さまざまな項目の色を含む categorical 配列を作成します。
A = categorical({'red';'green';'blue';'red';'green';'red';'blue';'blue'})
A = 8x1 categorical
red
green
blue
red
green
red
blue
blue
A
は 8 行 1 列の categorical 配列です。
A
のカテゴリを表示します。
categories(A)
ans = 3x1 cell
{'blue' }
{'green'}
{'red' }
A
のカテゴリはアルファベット順で、数学的な意味をもちません。
通常の色の順序に合わせてカテゴリを並べ替えます。
B = reordercats(A,{'red','green','blue'})
B = 8x1 categorical
red
green
blue
red
green
red
blue
blue
B
は、A
と同じ値を含みます。
B
のカテゴリを表示します。
categories(B)
ans = 3x1 cell
{'red' }
{'green'}
{'blue' }
B
は順序配列ではないため、カテゴリの順序には数学的な意味はありません。カテゴリは色スペクトルの順序で表示されますが、> (より大きい) や< (より小さい) などの関係演算子は意味をもちません。
順序 categorical 配列でのカテゴリの順序の並べ替え
交通手段を含む順序 categorical 配列 A
を作成します。旅行の平均価格に基づいてカテゴリを並べ替えます。
A = categorical({'plane';'car'; 'train';'car';'plane';'car'},... {'car','train','plane'},'Ordinal',true)
A = 6x1 categorical
plane
car
train
car
plane
car
A
は 6 行 1 列の順序 categorical 配列です。
A
のカテゴリを表示します。
categories(A)
ans = 3x1 cell
{'car' }
{'train'}
{'plane'}
A
は順序配列であるため、car < train < plane
となります。
電車旅行の費用の低下を反映するようにカテゴリを並べ替えます。
B = reordercats(A,{'train','car','plane'})
B = 6x1 categorical
plane
car
train
car
plane
car
B
は、A
と同じ値を含みます。
B
のカテゴリを表示します。
categories(B)
ans = 3x1 cell
{'train'}
{'car' }
{'plane'}
カテゴリの数学的な順序は train < car < plane
になります。関係演算子 min
と max
の結果には、新しいカテゴリ順序が反映されます。
数値ベクトルでのカテゴリの順序の並べ替え
交通手段を含む categorical 配列 A
を作成します。
A = categorical({'plane';'car';'train';'car';'car';'plane';'car'})
A = 7x1 categorical
plane
car
train
car
car
plane
car
A
のカテゴリを表示します。
categories(A)
ans = 3x1 cell
{'car' }
{'plane'}
{'train'}
A
に含まれる数が少ないものから多いものの順にカテゴリを並べ替えます。
B = countcats(A); [C,neworder] = sort(B); neworder
neworder = 3×1
3
2
1
D = reordercats(A,neworder); categories(D)
ans = 3x1 cell
{'train'}
{'plane'}
{'car' }
countcats
はカテゴリごとの出現をカウントするため、neworder
は A
の要素ではなくカテゴリを並べ替える方法を指定します。
パターンを使用したカテゴリの指定
categorical
配列を作成します。この配列には、"はい" と "いいえ" を表すさまざまなカテゴリがあります。
C = categorical(["Y" "Yes" "Yeah" "N" "No" "Nope"])
C = 1x6 categorical
Y Yes Yeah N No Nope
カテゴリを順番に一覧表示します。MATLAB® は文字を Unicode® として保存するため、既定ではこれらのカテゴリの並べ替え順序はアルファベット順です。
categories(C)
ans = 6x1 cell
{'N' }
{'No' }
{'Nope'}
{'Y' }
{'Yeah'}
{'Yes' }
pattern
を使用すると、複数のカテゴリ名を一致させることができます。たとえば、Y
で始まるカテゴリ名を指定するには、ワイルドカード パターンを使用できます。ワイルドカード パターンを作成するには、関数wildcardPattern
を使用します。
カテゴリを並べ替えます。並べ替え順序を変更し、Y
で始まるカテゴリが N
で始まるカテゴリより前になるようにします。
C = reordercats(C,["Y"+wildcardPattern,"N"+wildcardPattern])
C = 1x6 categorical
Y Yes Yeah N No Nope
カテゴリを新しい順序で一覧表示します。
categories(C)
ans = 6x1 cell
{'Y' }
{'Yeah'}
{'Yes' }
{'N' }
{'No' }
{'Nope'}
入力引数
A
— 入力配列
categorical
配列
入力配列。categorical
配列として指定します。A
が順序 categorical
配列である場合は、カテゴリの並べ替えにより、数学的な意味が変更されます。その結果、 > (より大きい) や < (より小さい) などの関係演算子で、異なる結果が返される場合があります。
neworder
— B
の新しいカテゴリ順序
string 配列 | 文字ベクトルの cell 配列 | 数値ベクトル | pattern
配列
B
の新しいカテゴリ順序。string 配列、文字ベクトルの cell 配列、数値ベクトル、または pattern
配列として指定します。neworder
は categories(A)
の置換でなければなりません。
ヒント
categorical 配列
B
を順序 categorical 配列に変換するには、B = categorical(B,'Ordinal',true)
を使用します。カテゴリの順序はB = categorical(B,
で指定できます。この場合、valueset
,'Ordinal',true)
の値の順序でカテゴリ順が定義されます。valueset
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2013b で導入
参考
categories
| addcats
| removecats
| iscategory
| mergecats
| renamecats
| setcats
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)