你可以帮帮我吗?我有n = 10(十个标签),每个都有8位值。每个标签的ID中应随机创建一个1(例如00000100、01000000)。如何在Matlab中做到这一点?
让我们尝试一下:
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] 删除。
我来说两句