将数字数组转换为二进制数

fre*_*ude 8 arrays binary matlab

我怎么能将数字数组转换为二进制数?例如:

a=[1 0 1 0 1 0]
Run Code Online (Sandbox Code Playgroud)

我想转换为二进制数

b=101010

有可能没有循环吗?

Lui*_*ndo 19

也许这就是你想要的:

char(a+'0')
Run Code Online (Sandbox Code Playgroud)

例:

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

a =

     1     0     1     0     1     0

>> char(a+'0')

ans =

101010
Run Code Online (Sandbox Code Playgroud)

这通过将每个数字转换为其ASCII代码(+'0')然后将结果数字的向量转换为字符串(char())来工作.

  • 如果速度是一个问题,`char(a + 48)`可能会更快.(在Octave中快两倍) (3认同)
  • 为了避免依赖于ASCII的特性,另一种选择是`bindig ='01'; bindig(a + 1)`. (2认同)

Dan*_*Dan 7

您可以将其转换为字符串:

sprintf('%d',a)
Run Code Online (Sandbox Code Playgroud)

我认为它是逻辑数组的唯一替代品.