我有一个像A:1 3 7 8的矢量 我想构建一个二进制vecor,如B(1 2 3 4 5 6 7 8) (1 0 1 0 0 0 1 1)
答案 0 :(得分:3)
您只能使用索引:
B = zeros(1, max(A));
B(A) = 1;
或使用sparse
:
B = full(sparse(1, A, 1));
这些方法不需要算术运算,因此可能比以前的答案更快。
答案 1 :(得分:1)
怎么样:
binA = sum( de2bi(2.^(A-1)) , 1 )
binA =
1 0 1 0 0 0 1 1
答案 2 :(得分:0)
您可以先将矢量转换为整数(基数为10),
d = sum(A(:).*(10.^[numel(A)-1: -1: 0])(:))
然后使用
将d
转换为二进制
b = de2bi(d)
然后,您可以从b