2

必要なものを出力するコードがありますが、形式が間違っています

for k=1:100
    bin(k,:)=dec2bin(randi([0 31]),5);
end

出力を、セルごとに 1 ビット (0 または 1 の値) の 100x5 double 配列にしたい。

機能を使ってみたdouble()...

for k=1:100
    bin(k,:)=double(dec2bin(randi([0 31]),5));
end

...しかし、それは間違った値で正しい形式を返します。

私の専門用語は少しずれているかもしれませんが、申し訳ありません (セル、ダブルなどを間違ったコンテキストで使用していますか?)

助けてくれてありがとう。

4

1 に答える 1

2

あなたがやりたいことをする方法はたくさんあります。最も単純なのは、ループなしで、最初からバイナリ配列を実際に生成することです。

bin = rand(100, 5) > 0.5

他の選択肢:

  1. 整数配列があり、それをビットに変換したい場合は、ループ内のbitget代わりに使用できます。dec2bin

    bin(k, :) = bitget(randi([0 31]), 5:-1:1)
    
  2. 2 進数を表す文字列配列が既にあり、それを操作したい場合は、ビットをスペースで区切ってから適用できますstr2num

    bin = reshape(str2num(sprintf('%c ', bin)), size(bin))
    
于 2013-01-28T15:29:07.857 に答える