簡體   English   中英

Matlab矢量為其二進制表示形式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM