バイナリパターンの出現回数を行列に格納する
Mostrar comentarios más antiguos
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 comentario
Atsushi Ueno
el 19 de En. de 2023
出力イメージの数字が離れて表示されているので、
dataのサイズは(2^ビット数) x (ビット数+1(出現回数格納分)) (転置すると逆)と解釈しました。
つまり data は「0と1のパターンを羅列した行列」に出現回数格納分を1行(転置状態では1列)追加した
ところが提示されたプログラムだと1*10000(元のデータ数)になっています。
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre データ型の変換 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!