本质上,我有两个长度相等的字符串,例如“AGGTCT”和“AGGCCT”。我想逐个位置比较它们并读取它们何时不匹配。所以在这里我希望得到 1,因为只有 1 个位置与位置 4 不匹配。如果有人对位置比较代码有想法,这将有助于我开始。
谢谢!!
本质上,我有两个长度相等的字符串,例如“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 )
您可以比较字符串的所有元素:
r = all(seq1 == seq2)
如果结果数组中的所有元素都为真,这将逐个字符比较并返回真。如果字符串可以有不同的大小,您可能需要先比较大小。另一种选择是
r = any(seq1 ~= seq2)
另一种解决方案是使用strcmp
:
r = strcmp(seq1, seq2)