2017-06-11 40 views
0

我有一個更大的矩陣3Nx3N。我需要找到尺寸爲3x3的每個submatrix的痕跡。我在SO上找到了答案,將較大的矩陣拆分爲更小的submatrices,但我無法找到存儲它們的方法,並找到Python中的每個子矩陣的軌跡。任何建議都會有巨大的幫助。先謝謝你。要找到python中的子矩陣的痕跡

+0

3n x 3n矩陣如何存儲(按什麼順序)? 3x3塊是否相鄰?你在用numpy嗎? –

+0

你好。是的3×3塊是相鄰的,我正在使用numpy。 – user3073333

+0

https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.trace.html –

回答

0

好,numpy在其陣列一個trace()方法,所以你可以用:

list(a[3*m:3*m+3,3*m:3*m+3].trace() for m in range(n)) 

這裏,切片3*m:3*m+3,3*m:3*m+3翻出每個子矩陣,然後跟蹤適用於它。這可能不是實現你想要的最有效的方式,但它是透明的。

+0

非常感謝您提供快速解決方案。這正是我想要的。再次感謝你。 :) – user3073333