1

Octave または Matlab には、大きな Toeplitz 行列を作成するためのきちんとしたコンパクトな方法があります。次に例を示します。

T = toeplitz([1,-0.25,zeros(1,20)])

これにより、余分なコード行を使用してマトリックスを数十または数百のゼロで埋めるために費やされる時間を大幅に節約できます。

それでも、scipy でも numpy でも同じことはできないようですが、これら 2 つのライブラリには toeplitz() と zeros() 関数の両方があります。それを行うための同様の方法はありますか、またはそれを行うために独自のルーチンをまとめる必要がありますか (大きな問題ではありませんが、それでも迷惑です)?

ありがとう、

F.

4

2 に答える 2

2

現在、あなたができる最善のことは次のとおりだと思います。

from numpy import concatenate, zeros
from scipy.linalg import toeplitz

toeplitz(concatenate([[1., -.25], zeros(20)]))

ただし、python 3.5以降は次のようになります。

toeplitz([1., -.25, *zeros(20)])

ですから、それは楽しみにしています。

于 2015-03-01T03:48:05.730 に答える