2013-10-29 15 views
8

数字の配列を2進数に変換するにはどうすればよいですか?例えば:私は進数数字の配列を2進数に変換する

b=101010

に変換したい

a=[1 0 1 0 1 0] 

はループせずに行うことが可能ですか?

+0

あなたがやりたいことをするために文字列表現を使うのではなく、 'seeget'のところで' bitget'と 'bitset'とそこに書かれているものをチェックしたいかもしれません。私はまだ文字列表現を使う作業が本当に必要な場合は見ていませんが、それでも人々は常にこのようなことを求めています。さらに、文字列を扱うのが遅くなり、メモリを増やします。 – sebastian

答えて

19

たぶんこれが何をしたいです:

char(a+'0') 

例:

>> a=[1 0 1 0 1 0] 

a = 

    1  0  1  0  1  0 

>> char(a+'0') 

ans = 

101010 

これは、そのASCIIコード(+'0')にそれぞれ番号を変換して、その結果得られる数のベクトルを変換することによって動作します文字列(char())。

+2

ASCIIの特殊性に依存しないようにするには、代わりに 'bindig = '01'; bindig(a + 1) 'を実行します。 –

+3

速度が問題であれば、 'char(a + 48)'が速くなるかもしれません。 (オクターブで2倍の速さ) – Dan

+0

+1恐ろしいトリック – rayryeng

7

あなたは、文字列に変換することができます:私は思う

sprintf('%d',a) 

は、論理名の配列への唯一の選択肢です。

+1

ニース、しかし最高の選択肢ではありません:) –

+0

@EitanT:この代替案には何が問題なのですか? – Daniel

+1

@DanielRそれは 'char'に比べて過剰です。 –

関連する問題