メインコンテンツ

countcats

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

説明

B = countcats(A) は、categorical 配列の各カテゴリの要素数を返します。数は、categories 関数によってリストされるカテゴリと同じ順序になります。

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

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

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

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

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

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

すべて折りたたむ

categorical 配列を作成します。

A = categorical(["red" "blue" "green" "blue" "red"],["red" "green" "blue"])
A = 1×5 categorical
     red      blue      green      blue      red 

redgreenblue の 3 つのカテゴリがあります。

categories(A)
ans = 3×1 cell
    {'red'  }
    {'green'}
    {'blue' }

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

  • B の最初の要素は、A の最初のカテゴリ (red) に対応します。

  • B の 2 番目の要素は、A の 2 番目のカテゴリ (green) に対応します。

  • B の 3 番目の要素は、A の 3 番目のカテゴリ (blue) に対応します。

B = countcats(A)
B = 1×3

     2     1     2

summary 関数を使用しても同じ結果が得られます。

summary(A)
A: 1×5 categorical

     red      green      blue      <undefined> 
     2        1          2         0           

3 行 2 列の categorical 配列を作成します。

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

redgreenblue の 3 つのカテゴリがあります。

categories(A)
ans = 3×1 cell
    {'red'  }
    {'green'}
    {'blue' }

A の各列のカテゴリ カウントを求めます。数は、categories 関数によってリストされるカテゴリと同じ順序になります。

  • redA の最初の列に 1 回、2 番目の列に 2 回出現します。

  • greenA の最初の列に 1 回出現しますが、2 番目の列には出現しません。

  • blueA の最初の列に 1 回、2 番目の列に 1 回出現します。

B = countcats(A)
B = 3×2

     1     2
     1     0
     1     1

summary 関数を使用しても同じ結果が得られます。

summary(A)
A: 3×2 categorical

     red              1      2 
     green            1      0 
     blue             1      1 
     <undefined>      0      0 

3 行 2 列の categorical 配列を作成します。

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

redgreenblue の 3 つのカテゴリがあります。

categories(A)
ans = 3×1 cell
    {'red'  }
    {'green'}
    {'blue' }

2 番目の次元に沿って A のカテゴリ カウントを求めます。数は、categories 関数によってリストされるカテゴリと同じ順序になります。

  • redA の最初の行に 1 回、2 番目の行に 1 回、3 番目の行に 1 回出現します。

  • green は 1 つの要素にのみ出現します。出現するのは A の 2 番目の行です。

  • blueA の最初の行に 1 回、3 番目の行に 1 回出現します。

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

     1     0     1
     1     1     0
     1     0     1

summary 関数を使用しても同じ結果が得られます。

summary(A,2)
A: 3×2 categorical

     red      green      blue      <undefined> 
     1        0          1         0           
     1        1          0         0           
     1        0          1         0           

countcats 関数は、categorical 配列内の未定義の要素の数を返しません。

6 行 1 列の categorical 配列を作成します。

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

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

A = removecats(A,"blue")
A = 6×1 categorical
     red 
     <undefined> 
     green 
     red 
     <undefined> 
     red 

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

  • redA に 3 回出現します。

  • greenA に 1 回出現します。

  • countcats は、未定義の要素の数を返しません。

B = countcats(A)
B = 2×1

     3
     1

未定義の要素の数と A の各カテゴリの要素数を表示するには、summary 関数を使用します。

summary(A)
A: 6×1 categorical

     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 配列の未定義の要素の数を求めるには、summary または isundefined を使用しなければなりません。

拡張機能

すべて展開する

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

バージョン履歴

R2013b で導入