该数字为二进制形式(例如)
1110001010
在matlab中将其设为矢量:
[1 1 1 0 0 0 1 0 1 0]
答案 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 Rotem与num = 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);
最有效。