2

エラーをシミュレートするには、各列のランダムなビットを変更する必要があります。無駄にしようとしてきた。

4

2 に答える 2

2

これを行う非常に簡単な方法は、for ループを使用することです。これは MATLAB で最も効率的な方法ではないかもしれませんが、データ セットが非常に小さいことを考えると、おそらく十分です。

4 つの列のそれぞれを反復処理します。各反復で、1 から 7 までの数字をランダムに選択して、変更するために選択した列の行を表します。最後に、その行/列でビットを反転します。次のコードはまさにこれを行います。"A" が 7 行 4 列のバイナリ行列であるとします。

for col=1:4;                  %// Iterate through each column
    row = ceil(7*rand());     %// Randomly chose a number from 1 to 7 to represent row
    A(row,col) = ~A(row,col); %// Flip the bit at the specified row/col
end
于 2012-09-03T04:12:34.537 に答える
1

もう1つの可能性は、1回の呼び出しで4つの乱数を作成し、ベクトル化された方法で割り当てることです。

rowNumbers = randi(4,[1 4])
A(rowNumbers,:) = ~A(rowNumbers,:);
于 2012-09-03T07:21:38.990 に答える