本质上,我有两个长度相等的字符串,为了举例起见,我们说“AGGTCT”和“AGGCCT”。我想逐个位置比较它们,并在它们不匹配时读出。所以在这里我希望得到 1,因为只有 1 个位置与位置 4 不匹配。如果有人对位置比较代码有想法,那将对我入门有很大帮助。
谢谢!!
最佳答案
使用以下语法获取相同大小的字符串中不同字符的数量:
sum( str1 ~= str2 )
如果你想不区分大小写,使用:
sum( lower(str1) ~= lower(str2) )
表达式 str1 ~= str2
对两个字符串进行逐字符比较,生成与字符串大小相同的逻辑向量,其中 true
它们不匹配(使用 ~=
)并且匹配时为 false
。要获得结果,只需将 true
值(不匹配)的数量相加即可。
编辑:如果您想计算匹配字符的数量,您可以:
使用“等于”
==
运算符(而不是“不等于”~=
运算符):sum( str1 == str2 )
从总数中减去不匹配的数量:
numel(str1) - sum( str1 ~= str2 )
关于string - Matlab - 如何逐个字母地比较两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587306/