从二进制数b
到十进制数的转换(d
很有希望)是
d = sum(b.*2.^(numel(b)-1:-1:0)) + 1
我将如何有效的(阅读:不使用一个for循环)转换成二进制数的载体bvec
,例如在三个二进制数bvec = logical([0 1;1 0;1 1])
到十进制数的载体?
使用bin2dec
。
>> str = reshape('0001011100110001', 8, [])'
str =
2×8 char array
'00010111'
'00110001'
>> bin2dec(str)
ans =
23
49
注意:Matlab是专栏专栏作家,因此,如果不仔细操作,重塑字符串形状可能会导致意外结果:
>> abc = 'abcdefghijklmnop';
>> reshape(abc, [], 8) % does not maintain original order
ans =
2×8 char array
'acegikmo'
'bdfhjlnp'
>> reshape(abc, 8, [])' % maintains original order
ans =
2×8 char array
'abcdefgh'
'ijklmnop'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句