dec2bin
論理変数ベクトルを返すように、Matlab で変数を取得する簡単な方法を探しています。たとえば、数値が与えられた場合n=8
、出力は [1,0,0,0] になります。どうやってやるの?
3224 次
3 に答える
8
最も簡単な方法は、返されたバイナリ表現を単純に分解することですdec2bin
(これはすでに文字列です!):
dec2bin(n) == '1'
これはn = 8
、論理ベクトルを返します
1 0 0 0
これn
は、 が数値のベクトルの場合にも機能します。
于 2013-05-09T19:59:18.107 に答える
3
文字列 '1' は char(49) で、文字列 '0' は char(48) であるため、次を使用できます。
bin = dec2bin(dec) - 48;
配列に対して算術演算を実行しているため、結果は double の配列として出力されます («dec2bin» からの文字列は、Matlab では配列と見なされます)。
非常に大きい整数をバイナリに変換する場合は、次のコードを使用することをお勧めします。
bin = mod(floor(dec.*2.^-(floor(log2(dec)):-1:0)),2);
バイナリ ベクトルを 10 進数に変換するには:
dec = sum(bin.*2.^((length(bin)-1):-1:0));
于 2015-07-22T16:00:18.067 に答える