相当简单的问题:我有一个整数列表,例如,
a = [7 8]
Run Code Online (Sandbox Code Playgroud)
现在我想要一个单独的列表,其中包含列表中每个整数的汉明权重(即二进制表示中的1位数).这意味着上面的整数列表的结果应如下所示:
res = [3 1]
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何快速完成这项工作?
大多数答案仅针对已经回答的有关汉明重量的问题,但忽略了关于find稀疏性的观点.显然,通过夏嘉曦答案在这里解决了约找到一点-但我现在还无法验证它.我在这里的答案并没有利用其他答案的独创性,比如位移,但足够好的例子答案.
输入
>> mlf=sparse([],[],[],2^31+1,1);mlf(1)=10;mlf(10)=111;mlf(77)=1010;
>> transpose(dec2bin(find(mlf)))
ans =
001
000
000
011
001
010
101
Run Code Online (Sandbox Code Playgroud)
目标
1
0
0
2
1
1
2
Run Code Online (Sandbox Code Playgroud)
使用稀疏结构快速计算二进制数的1?