string - Matlab - 如何逐个字母地比较两个字符串?

标签 string matlab compare vectorization

本质上,我有两个长度相等的字符串,为了举例起见,我们说“AGGTCT”和“AGGCCT”。我想逐个位置比较它们,并在它们不匹配时读出。所以在这里我希望得到 1,因为只有 1 个位置与位置 4 不匹配。如果有人对位置比较代码有想法,那将对我入门有很大帮助。

谢谢!!

最佳答案

使用以下语法获取相同大小的字符串中不同字符的数量:

sum( str1 ~= str2 )

如果你想不区分大小写,使用:

sum( lower(str1) ~= lower(str2) )

表达式 str1 ~= str2 对两个字符串进行逐字符比较,生成与字符串大小相同的逻辑向量,其中 true它们不匹配(使用 ~=)并且匹配时为 false。要获得结果,只需将 true 值(不匹配)的数量相加即可。

编辑:如果您想计算匹配字符的数量,您可以:

  1. 使用“等于”== 运算符(而不是“不等于”~= 运算符):

    sum( str1 == str2 )
    
  2. 从总数中减去不匹配的数量:

    numel(str1) - sum( str1 ~= str2 )
    

关于string - Matlab - 如何逐个字母地比较两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587306/

相关文章:

c - 如果 - 其他程序

python - 为什么使用 for 循环将 '\n' 存储为一项?

Matlab openGL 警告

matlab - 通过单击按钮关闭 uialert 图

javascript - 比较对象数组,最佳方式

ios - 比较两个任意值

c - 用字符填充的动态分配的字符串导致空字符串 C

从删除\n 和\0 的字符串创建协议(protocol)行

xcode - MATLAB MEX 无法使用 XCode 4.3 (Mac) 找到标准库

algorithm - session 冲突算法