前提・実現したいこと
当方pythonを始めて3か月の初心者です。初めての質問です。お手柔らかにお願いします。質問の意図が分かりづらかったら申し訳ありません。
def文で定義した関数A(この時の引数をx0とする)の戻り値(これをx1とする)を、関数Aの引数(x1)として、その戻り値(同様に、x2とする)を関数Aの引数(x2)とする...
この処理を20回ほど繰り返し行いたいのですが、そのままプログラムを書いてしまうと、とても長くなってしまうので、for文やその他の関数を使って繰り返し処理を行いたいです。なお、引数、戻り値ともに1次元のリストになっています。
よろしくお願いいたします。
以下のようなプログラムを繰り返し処理を使って短縮したいです。
以下のプログラムはあくまでも例なので、見苦しいプログラムかと思いますが、ご容赦ください。
python
1import numpy as np 2sequence=np.random.rand(21) 3def A(x0): 4 X1=np.zeros(21) 5 X_1=[] 6 for i in range(1,20): 7 x1=x0[i-1]/4+x0[i]/2+x0[i+1]/4 8 X_1=np.append(X_1,x1) 9 X1_end=x0[19]/4+x0[20]/2 10 X1[1:20]=X_1 11 X1[0]=0 12 X1[20]=X1_end 13 return X1 14X1=A(sequence) 15X2=A(X1) 16X3=A(X2) 17X4=A(X3) 18以下、X20となるまで繰り返し 19X2=A(X1)以降の処理を繰り返し処理などで短縮したい。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/07 07:41