def myKr(A, B, partA, partB):
A = np.array(A)
B = np.array(B)
J, M = A.shape
K, N = B.shape
partionNum = partB.shape[1]
indA = np.append(0,np.cumsum(partA,axis=1))
indB = np.append(0,np.cumsum(partB,axis=1))
indMat = np.append(0,np.cumsum(np.multiply(partA,partB)))
Mat = np.zeros([J*K, int(np.sum(np.multiply(partA,partB)))])
for i in range(partionNum):
Mat[:, indMat[i] + 1:indMat[i+1]] = fast_kron(A[:,indA[i]+1:indA[i+1]] , B[:,indB[i]+1:indB[i+1]])
return Mat
抽取一个值测试时:
fast_kron(A[:,indA[0]+1:indA[0+1]] , B[:,indB[0]+1:indB[0+1]])
提示错误:
fast_kron(A[:,indA[0]+1:indA[0+1]] , B[:,indB[0]+1:indB[0+1]])
Traceback (most recent call last):
File "<ipython-input-155-2dcdd20b31fa>", line 1, in <module>
fast_kron(A[:,indA[0]+1:indA[0+1]] , B[:,indB[0]+1:indB[0+1]])
TypeError: list indices must be integers or slices, not tuple
对这个问题感到疑惑想请问一些这个问题应该怎么解决?
希望能得到各位大佬的帮助,谢谢各位!
fast_kron(A[:,indA[0]+1:indA[0+1]]][B[:,indB[0]+1:indB[0+1]])
这样写