0

テキストのみのサイズ 2775x2 のテーブルがあります。

'Papio cynocephalus'      'Papio cynocephalus'  
'Cercopithecus kandti'    'Papio cynocephalus'  
'Papio cynocephalus'      'Human in vivo'       
'Papio cynocephalus'      'Papio cynocephalus'  
'Gorilla beringei'        'Papio cynocephalus'  
'Papio cynocephalus'      'Gorilla gorilla'       
'Papio cynocephalus'      'Human in vivo'       
'Papio cynocephalus'      'Papio cynocephalus'
...

全体として、5 つの異なるカテゴリ (= 霊長類 5 種、両方の列で同じ) があります。サイズ 111x2 の新しいテーブルを作成したいと思います。ここで、各行は、25 のブロックごとに (両方の列で) 最も頻度の高いカテゴリを示します。行 (l1->l25、次に l26->l50、次に l51->l75... ->l2775)。なぜ111?111= 2775/25 なので。続行する方法について何か考えはありますか?よろしくお願いします!!

4

1 に答える 1

0

これが私が提案するものです。

  1. テーブルからセル配列にテキストを取得します
  2. cell 配列の形状を 111 行 (および 50 列) に変更し、次のように変換します。categorical
  3. modeすべての列を検索

サンプル データとデモを生成するためのコードを次に示します。

names = {'Alpha','Beta','Gamma','Delta','Echo'}';
A = names(randi(5,2775,1));
B = names(randi(5,2775,1));
txtTable = table(A,B); % This is the kind of table you have

ここtxtTableで、再形成のためにセル配列に変換し、セル配列をcategorical

textsWide = categorical(reshape(table2cell(txtTable),25,[]));
mostFrequent = mode(textsWide,2); % Find mode in each column
于 2016-09-12T14:58:32.440 に答える