gpt4 book ai didi

matlab - matlab中的字符串 "cross correlation"

转载 作者:行者123 更新时间:2023-12-02 06:55:21 25 4
gpt4 key购买 nike

假设我有 2 个字符串:

AACCCGGAAATTTGGAATTTTCCCCAAATACG

CGATGATCGATGAATTTTAGCGGATACGATTC

我想知道应该将第二个字符串移动多少,以便它与第一个字符串最匹配。

有2个案例。第一个是我们假设字符串被缠绕,第二个是我们没有缠绕。

是否有一个 matlab 函数可以返回一个 N 数组或 2N+1 数组值来表示移位后的字符串 2 与字符串 1 的相关程度?

如果没有,是否有比类似方法更快/更简单的方法

result = zeroes(length, 1)
for i = 0:length-1
result(i+1) = sum (str1 == circshift(str2, i));
end

最佳答案

您可以将每个字符转换为大小为 4 的二进制列:

A -> [1;0;0;0]
C -> [0;1;0;0]
G -> [0;0;1;0]
T -> [0;0;0;1]

因此,长度为 n 的字符串变为大小为 4×n 的二进制矩阵。

您现在可以将两个 n-by-4 和 m-by-4 进行交叉关联(仅沿 X 轴)以获得结果。

关于matlab - matlab中的字符串 "cross correlation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com