我有两个等长的字符串,包含1和0。每个字符串都是128位长,我想计算它们之间的汉明距离。我能做到这一点的最佳方式是什么?在Matlab中计算两个二进制数字串之间的汉明距离
例如a ='1000001'和b ='1110001' - > dist = Hamming(a,b);
我有两个等长的字符串,包含1和0。每个字符串都是128位长,我想计算它们之间的汉明距离。我能做到这一点的最佳方式是什么?在Matlab中计算两个二进制数字串之间的汉明距离
例如a ='1000001'和b ='1110001' - > dist = Hamming(a,b);
使用pdist
与hamming
参数。
dist = sum(a ~= b);
您的解决方案不正确。取dist = sum(4〜8)产生1,其中0100和1000的汉明距离为2. – 2013-01-15 17:16:34
@GustavoLitovsky:你错过了OP有位串而不是整数。 – 2013-01-15 17:31:45
我的歉意。 hammingDist('0100','1000')是正确的。 – 2013-01-15 17:35:05
唯一要注意的是,这给出了一个分数结果,这是非标准的。您需要将结果乘以长度(a)'。 – 2010-11-14 20:38:19
您还需要将1000001转换为[1 0 0 0 0 0 0 1],以便让pdist分别处理每个数字 – 2017-09-03 04:36:27