Main Content

countcats

categorical 配列要素の出現回数をカテゴリ別にカウント

説明

B = countcats(A) は、categorical 配列 A の各カテゴリの要素数を返します。

  • A がベクトルの場合、countcats は各カテゴリの要素数を返します。

  • A が行列の場合、countcats は、A の列をベクトルとして取り扱い、A の各列のカテゴリ カウントを返します。

  • A が多次元配列の場合、countcats は、サイズが 1 でない最初の配列次元に沿って機能します。

カテゴリ名と各カテゴリの要素数の両方を示す categorical 配列の概要を表示するには、関数 summary を使用します。

B = countcats(A,dim) は、次元 dim に沿ってカテゴリ カウントを返します。

たとえば、countcats(A,2) を使用して、categorical 配列の各行のカテゴリ カウントを返すことができます。

すべて折りたたむ

1 行 5 列の categorical ベクトルを作成します。

A = categorical({'plane' 'car' 'train' 'car' 'plane'})
A = 1x5 categorical
     plane      car      train      car      plane 

A には 3 つのカテゴリがあります。カテゴリとその順序をリストするには、関数 categories を使用します。A の各要素は、categories の呼び出しによってリストされたカテゴリのいずれかに属します。

categories(A)
ans = 3x1 cell
    {'car'  }
    {'plane'}
    {'train'}

A の各カテゴリの要素数を求めます。

B = countcats(A)
B = 1×3

     2     2     1

B の最初の要素は、A の最初のカテゴリ (car) に対応します。B の 2 番目の要素は、A の 2 番目のカテゴリ (plane) に対応します。B の 3 番目の要素は、A の 3 番目のカテゴリ (train) に対応します。

A は行ベクトルであるため、countcats は行ベクトルを返します。

数値配列から 3 行 2 列の categorical 配列 A を作成します。

valueset = 1:3;
catnames = {'red' 'green' 'blue'};

A = categorical([1 3; 2 1; 3 1],valueset,catnames)
A = 3x2 categorical
     red        blue 
     green      red  
     blue       red  

A には、redgreenblue の 3 つのカテゴリがあります。

A の各列のカテゴリ カウントを求めます。

B = countcats(A)
B = 3×2

     1     2
     1     0
     1     1

B の最初の行は、A の最初のカテゴリに対応します。値 redA の最初の列に 1 回、2 番目の列に 2 回出現します。

B の 2 番目の行は、A の 2 番目のカテゴリに対応します。値 greenA の最初の列に 1 回出現しますが、2 番目の列には出現しません。

B の 3 番目の行は、A の 3 番目のカテゴリに対応します。値 blueA の最初の列に 1 回、2 番目の列に 1 回出現します。

数値配列から 3 行 2 列の categorical 配列 A を作成します。

valueset = 1:3;
catnames = {'red' 'green' 'blue'};

A = categorical([1 3; 2 1; 3 1],valueset,catnames)
A = 3x2 categorical
     red        blue 
     green      red  
     blue       red  

A には、redgreenblue の 3 つのカテゴリがあります。

2 番目の次元に沿って A のカテゴリ カウントを求めます。

B = countcats(A,2)
B = 3×3

     1     0     1
     1     1     0
     1     0     1

B の最初の列は、A の最初のカテゴリに対応します。値 redA の最初の行に 1 回、2 番目の行に 1 回、3 番目の行に 1 回出現します。

B の 2 番目の列は、A の 2 番目のカテゴリに対応します。値 green は 1 つの要素にのみ出現します。出現するのは A の 2 番目の行です。

B の 3 番目の列は、A の 3 番目のカテゴリに対応します。値 blueA の最初の行に 1 回、3 番目の行に 1 回出現します。

数値配列から 6 行 1 列の categorical 配列 A を作成します。

valueset = 1:3;
catnames = {'red' 'green' 'blue'};

A = categorical([1;3;2;1;3;1],valueset,catnames)
A = 6x1 categorical
     red 
     blue 
     green 
     red 
     blue 
     red 

カテゴリ blue を削除します。

A = removecats(A,'blue')
A = 6x1 categorical
     red 
     <undefined> 
     green 
     red 
     <undefined> 
     red 

A には、redgreen の 2 つのカテゴリがあります。カテゴリ blue だった A の要素は未定義となっています。

A の各カテゴリの要素数を求めます。

B = countcats(A)
B = 2×1

     3
     1

B の最初の要素は、A の最初のカテゴリに対応します。値 redA に 3 回出現します。

B の 2 番目の要素は、A の 2 番目のカテゴリに対応します。値 greenA に 1 回出現します。

countcats は、未定義の要素に関する情報を返しません。

関数 summary を使用して、A の各カテゴリの要素数だけでなく、未定義の要素数を表示します。

summary(A)
     red              3 
     green            1 
     <undefined>      2 

入力引数

すべて折りたたむ

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

演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。

2 次元の categorical 配列 A について考えます。

dim = 1 の場合、countcats(A,1)A の各列のカテゴリ カウントを返します。

dim = 2 の場合、countcats(A,2)A の各行のカテゴリ カウントを返します。

dimndims(A) より大きい場合、countcats(A) は、各カテゴリについて A と同じサイズの配列を返します。countcats は、対応するカテゴリの要素については 1 を返し、それ以外については 0 を返します。

ヒント

  • categorical 配列 A の未定義の要素数を求めるには、summary または isundefined を使用しなければなりません。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2013b で導入