0

私が使用しているコードの例を次に示します。

import numpy as np
import numpy.linalg as linalg

A = np.random.random((10,10))
eigenValues,eigenVectors = linalg.eig(A)

idx = eigenValues.argsort()   
eigenValues = eigenValues[idx]
eigenVectors = eigenVectors[:,idx]

私がやろうとしているのは、5 つ以上の固有ベクトルのセットで最小の 5 つの固有ベクトルのみをプロットし、それらをプロットすることです。では、最初の 5 つの固有ベクトルを選択して、それらを matplotlib にプロットするにはどうすればよいでしょうか?

4

2 に答える 2

1

以下は、最初の 5 つの固有ベクトルを選択します (例のように並べ替えを既に行っていると仮定します)。

eigenVectors[:,:5]

10 次元ベクトルをプロットする最善の方法については、よくわかりません。

于 2013-03-20T17:54:07.467 に答える
0

将来の読者のために、これを正確に行うコードサンプルを次に示します。

from pylab import *
N = 10
k = 5
L = 1

x = linspace(-L, L, N)
H = random((N,N))
ls, vs = eig(H)

#find and plot k lowest eigenvalues and eigenvectors
min_values_indices = argsort(ls)[0:k]
for i in min_values_indices:
    plot(x, vs[:,i])

show()

ところで-この質問の主題をより有益なものに変更したでしょう(「numpy-最小のk固有値と固有ベクトルを見つける」など)

于 2014-05-28T14:35:59.143 に答える