2017-08-23 9 views
0

私は現在、再帰アルゴリズムをコーディングしています。以下のような関数をforループでたくさん作成しました。Forループの初期値を指定

def create_m_(y, m, theta, mc, theta_mc): 
    for i in range (len(data[0])-1): 
     m = create_m(y)[i] 
     theta = theta_m[i] 
     mc = create_mc(y)[i-1] 
     create_theta_mc[i-1] 
     m_ = (m * theta_mc + mc * theta + m * mc) 
     return m_ 

唯一のものは、次のとおりです。MCとループを開始しますtheta_mcの初期値は、関数(これらの初期値は、特定のケースである)で数式を使って計算されていません。 mcとtheta_mcの最初の値を指定するループを設定するにはどうすればよいですか?

編集: これを行うことはできますか?

def create_m_(y, m, theta, mc, theta_mc): 
    for i in range (len(data[0])-1): 
     if i == 1: 
      m = m_2 
      theta = theta_m_2 
     else:   
      m = create_m(y)[i] 
      theta = theta_m[i] 
      mc = create_mc(y)[i-1] 
      create_theta_mc[i-1] 
      m_ = (m * theta_mc + mc * theta + m * mc) 
     return m_ 
+0

あなたのコードはあまり意味がありません。 forループの最後の行はreturn文であるため、ループはループではありません。一度だけ実行されます。ループが最初に実行されるとき、i == 0(1ではない)。これを修正してください。 –

答えて

1

だけに機能

def create_m_(y, m, theta, mc, theta_mc) 

を変更する:あなたはmcまたはtheta-mcの値を指定せずに、初めてこの関数を呼び出すと、彼らはにデフォルト設定されます

def create_m_(y, m, theta, mc=initial_value, theta_mc=initial_value) 

初期値。

関連する問題