python建立得分矩阵的时候报错
代码如下
sequence_1='GAAUUCAGUUA'
sequence_2='GGAUCGA'
len_1=len(sequence_1)
len_2=len(sequence_2)
print('序列一的长度是'+str(len_1)+'bases')
print(' ')
print('序列二的长度是'+str(len_2)+'bases')
# 创建得分矩阵,行数为第一条序列长度加一,列数为第二条序列长度加一
Score = np.zeros((len_1+1, len_2+1))
# 填得分矩阵
# 第一步:初始化第一行和第一列
for i in range(len_1 + 1):
Score[i][0] = i
for j in range(len_2 + 1):
Score[0][j] = j
# 第二步:动态规划的思想算每个格子的得分,每个格子需要考虑其左、上、左上的值,也可以说是考虑序列一、序列二引入空缺或直接匹配的最大值
for i in range(1, len_1 + 1):
for j in range(1, len_2 + 1):
if sequence_1[i]==sequence_2[j]:
Score[i][j]=Score[i-1][j-1]
else:
Score[i][j]=min(Score[i-1][j-1],Score[i-1][j],Score[i][j-1])+1
print(Score)
索引越界了
len_1 + 1是什么鬼操作,把+1删掉
前面和后面所有len+1的+1都应该删掉