汉明重量为Matlab中的整数列表

Pat*_*ick 1 binary matlab hammingweight

相当简单的问题:我有一个整数列表,例如,

 a = [7 8]
Run Code Online (Sandbox Code Playgroud)

现在我想要一个单独的列表,其中包含列表中每个整数的汉明权重(即二进制表示中的1位数).这意味着上面的整数列表的结果应如下所示:

 res = [3 1]
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何快速完成这项工作?

Pho*_*non 5

这有点hacky,但它的工作原理:

res = sum( dec2bin(a).' == '1' );
Run Code Online (Sandbox Code Playgroud)

它转换a为二进制表示,查看该表示中有多少个字符'1',并总结这些数字.