我正在寻找一种dec2bin
在 Matlab 中获取变量的快速方法,以便它返回一个逻辑变量向量。例如,给定一个数字n=8
,输出将为 [1,0,0,0]。我怎样才能做到这一点?
user2066183
问问题
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;
这会将结果输出为 doubles 数组,因为您正在对数组执行算术运算(来自 «dec2bin» 的字符串在 Matlab 中被视为数组)
如果要将非常高的整数转换为二进制,我建议使用以下代码:
bin = mod(floor(dec.*2.^-(floor(log2(dec)):-1:0)),2);
为了将二进制向量转换为十进制:
dec = sum(bin.*2.^((length(bin)-1):-1:0));
于 2015-07-22T16:00:18.067 回答