Matlab 将二进制数向量转换为小数向量
从二进制数Matlab 将二进制数向量转换为小数向量,matlab,Matlab,从二进制数b到十进制数d的转换(希望有效)是 d = sum(b.*2.^(numel(b)-1:-1:0)) + 1 如何有效地(阅读:不使用for循环)将二进制数向量bvec,例如bvec=logical([01;10;11])中的三个二进制数转换为十进制数向量?使用bin2dec >> str = reshape('0001011100110001', 8, [])' str = 2×8 char array '00010111' '00110001
b
到十进制数d
的转换(希望有效)是
d = sum(b.*2.^(numel(b)-1:-1:0)) + 1
如何有效地(阅读:不使用for循环)将二进制数向量
bvec
,例如bvec=logical([01;10;11])
中的三个二进制数转换为十进制数向量?使用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'