0

繰り返しに基づいて、シンボルを他の2つのシンボルに置き換えるためにsympyを取得しようとしています。現時点では、いくつかのブラケットを展開して各反復を保存するコードがあります。

for i in range(0,nMoments-1):
  middle.append(K+i)

生産

[K]
[K, K + 1]
[K, K + 1, K + 2]

私がやりたいことは、行ごとに K の代わりに 2 つのシンボルを使用することです。これらのシンボル自体は、同じ長さ m1 と m2 のベクトルに格納されます。したがって、一番上の行では、各 KI を m1[0]/m2[0] に置き換え、次に 2 行目の各 K を m1[1]/m2[1]、3 行目の K を m1[2 ]/m2[2]など

middle[0] の場合、m1 および m2 ベクトルの同等の指数付けが K に入れられます。

参考までに、nMoments は単なる int 変数です。

私が言えることから、これまでの私の最も近い試みは

for i in range(0,nMoments):
  K.replace(K,m1[i]**2/m2[i])
  print middle

ただし、これにより次が生成されます。

[K, K + 1, K + 2]
[K, K + 1, K + 2]
[K, K + 1, K + 2]

この問題を解決する方法を知っている人はいますか?

どうもありがとう!

4

1 に答える 1

1

これは、あなたの望むことですか?

for i in range(nMoments):
    middle[i] = middle[i].subs(K, m1[i]**2/m2[i])
于 2013-05-17T23:16:58.717 に答える