3

ここに画像の説明を入力

matplotlib でマトリックスを作成しました。ご覧のとおり、マトリックスの半分しかカバーしていません。ポイントをマトリックスの反対側に反映して、マトリックス全体を埋めることができる方法はありますか?

を使用して生成されたimshow

4

1 に答える 1

4

E氏の答えは(ほぼ)正しいですが、完全に最小限の作業例が必要だと感じました。秘訣はプロットすることA + A.Tです。ただし、そうする場合は、対角線を2倍にするため、その部分を差し引く必要があります。

import numpy as np
import pylab as plt

# Create a sample matrix like your image
A = np.random.random((100,100)) * .52
A = np.rint(A)
for idx in np.ndindex(A.shape):
    if idx[0]>idx[1]: A[idx] = 0

plt.subplot(1,2,1)
plt.imshow(A,interpolation='none')

# Make a new matrix B = A + A.T - diagonal(A)
B = A + A.T - np.diag(np.diag(A))
plt.subplot(1,2,2)
plt.imshow(B,interpolation='none')
plt.tight_layout()
plt.show()

ここに画像の説明を入力してください

于 2013-02-20T15:03:10.667 に答える