[英]Matlab vector to its binary representation
我有一個像A這樣的向量:1 3 7 8我想構造一個二進制向量,例如B(1 2 3 4 5 6 7 8)(1 0 1 0 0 0 1 1)
您可以只使用索引:
B = zeros(1, max(A));
B(A) = 1;
或使用sparse
:
B = full(sparse(1, A, 1));
這些方法不需要算術運算,因此可能比以前的答案要快。
怎么樣:
binA = sum( de2bi(2.^(A-1)) , 1 )
binA =
1 0 1 0 0 0 1 1
您可以先將向量轉換為整數(以10為底),
d = sum(A(:).*(10.^[numel(A)-1: -1: 0])(:))
然后使用將d
轉換為二進制
b = de2bi(d)
然后,您可以從b
提取任意數量的位
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.