バイナリパターンの出現回数を行列に格納する
Show older comments
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 Comment
Atsushi Ueno
on 19 Jan 2023
出力イメージの数字が離れて表示されているので、
dataのサイズは(2^ビット数) x (ビット数+1(出現回数格納分)) (転置すると逆)と解釈しました。
つまり data は「0と1のパターンを羅列した行列」に出現回数格納分を1行(転置状態では1列)追加した
ところが提示されたプログラムだと1*10000(元のデータ数)になっています。
Accepted Answer
More Answers (0)
Categories
Find more on データ型の変換 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!