我正在MATLAB上编写一个函数,用于比较两个基因序列并确定它们的相似度。为此,我通过使用for循环在两个序列上移动,每次移动一个核苷酸,并将子字符串添加到单元格数组中,以将它们分成较小的子字符串。
例如,字符串ATGCAAAT的子字符串长度为4,不会被拆分为ATGC,AAAT,而是按照ATCG,TGCA,GCAA,CAAA,AAAT的顺序进行拆分。
我正在尝试加快函数的执行速度,由于这两个for循环几乎占据了90%的执行时间,因此我想知道MATLAB中是否有更快的方法来完成此操作。
以下是我目前正在使用的代码:
例如,字符串ATGCAAAT的子字符串长度为4,不会被拆分为ATGC,AAAT,而是按照ATCG,TGCA,GCAA,CAAA,AAAT的顺序进行拆分。
我正在尝试加快函数的执行速度,由于这两个for循环几乎占据了90%的执行时间,因此我想知道MATLAB中是否有更快的方法来完成此操作。
以下是我目前正在使用的代码:
SubstrSequence1 = {};
SubstrSequence2 = {};
for i = 1:length(Sequence1)-(SubstringLength-1)
SubstrSequence1 = [SubstrSequence1, Sequence1(i:i+SubstringLength-1)];
end
for i = 1:length(Sequence2)-(SubstringLength-1)
SubstrSequence2 = [SubstrSequence2, Sequence2(i:i+SubstringLength-1)];
end