如何使用MatLab将二进制数转换为向量?

时间:2017-03-04 12:13:49

标签: matlab

该数字为二进制形式(例如)

 1110001010     

在matlab中将其设为矢量:

[1 1 1 0 0 0 1 0 1 0]

3 个答案:

答案 0 :(得分:1)

没有标准答案,提供了一种解决方案供您参考。

a = dec2bin(906);   % a = '1110001010'
va = a-'0';       % va = [1,1,1,0,0,0,1,0,1,0];

答案 1 :(得分:1)

如果二进制数是一个字符串,您可以将其转换为逻辑数组:

s = '1110001010';
S = (s == '1');

答案 2 :(得分:0)

如果输入是以十进制数字给出的,如果速度是必要的,那么我能想到的最快的方法是:

@JoinColumn(name="emp_no", referencedColumnName="emp_no")
@ForeignKey(name="salaries_ibfk_1")

method provided by Rotemnum = 1110001010; vec = mod(floor(num./ 10.^(floor(log10(num)):-1:0)),2); 相结合的改进大致为4.5倍(对于更高的数字,它更大)。以下是我用于基准测试的代码:

num2str

当然,如果输入是以字符串形式给出的,那么num = 1110001010; niter = 1e5; tic for i = 1:niter vec = (num2str(num) == '1'); end t1 = toc; tic for i = 1:niter vec = mod(floor(num ./ 10.^(floor(log10(num)):-1:0)),2); end t2 = toc; disp(t1 / t2); 最有效。