随机创建二进制ID

尼古拉C

你可以帮帮我吗?我有n = 10(十个标签),每个都有8位值。每个标签的ID中应随机创建一个1(例如00000100、01000000)。如何在Matlab中做到这一点?

Mikhail_Sam

让我们尝试一下:

n = 10;
r = 8;
k = randi(r,1,n);
Tag  = zeros(r,n);
Tag(r*(find(k)-1) + k)=1;
Tag = Tag';

所以:

k =

8     8     5     2     2     3     7     3     7     2

Tag =

 0     0     0     0     0     0     0     1
 0     0     0     0     0     0     0     1
 0     0     0     0     1     0     0     0
 0     1     0     0     0     0     0     0
 0     1     0     0     0     0     0     0
 0     0     1     0     0     0     0     0
 0     0     0     0     0     0     1     0
 0     0     1     0     0     0     0     0
 0     0     0     0     0     0     1     0
 0     1     0     0     0     0     0     0

现在每一-您的标签。例如,Tag1 = Tag(1,:)

在这种情况下,让我们找到所需的结果:如果只需要逻辑值(如果在任何行中有1,则为1,如果在列中没有任何1,则为0),我们必须添加以下内容:

result = sum(Tag);
result(find(result))=1
result =
0     1     1     0     1     0     1     1

一和零的数量:

c1 = sum(result);
c0 = numel(result) - c1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章