バイナリパターンの出現回数を行列に格納する
Afficher commentaires plus anciens
0,1が19×10000格納されているdata9があります。
行ごとの0,1パターンがこの配列で何回出現しているかカウントした後、その結果をdispするだけでなくdataに格納したいです。
data10 = bin2dec(num2str(data9')); % binaryデータを19桁の2進数とみなし、一旦10進数に変換
[N,~,bin] = histcounts(data10,2^19); % 各パターンの出現回数をカウント
data=zeros(size(bin));
for k = 1:numel(bin)
disp([dec2bin(bin(k)) 'が' num2str(N(bin(k))) '回']);
data(k)=[str2double(dec2bin(bin(k))),num2str(N(bin(k)))]; % ここで上手くいかない。上記のdisp内容を行列データにしたい
end
出力イメージとしては、下記のように「binary data + 出現回数」としたいです。
(一例ですので転置状態でも構いません。)
1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 42
1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 12
1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 13
1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 34
1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 9
…
詳細がわからない場合はコメントいただけるとありがたいです。
また、解決法をお持ちの方はご教授頂けると幸いです。
1 commentaire
Atsushi Ueno
le 19 Jan 2023
出力イメージの数字が離れて表示されているので、
dataのサイズは(2^ビット数) x (ビット数+1(出現回数格納分)) (転置すると逆)と解釈しました。
つまり data は「0と1のパターンを羅列した行列」に出現回数格納分を1行(転置状態では1列)追加した
ところが提示されたプログラムだと1*10000(元のデータ数)になっています。
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur データ型の変換 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!