2016-03-24 5 views
1

私は4パラメトリックRAINFLOWメソッドをプログラミングしています。だから、考えられるのは、標準的なロード・サイクルを得ることです。これは、負荷の履歴から4つの要件で定義されます。通常は、1000,10000またはそれ以上のポイント(強制時間)で構成されます。この負荷履歴では、2つの標準サイクルがあり、上昇と下降の2つがあります。example here。どちらも写真に示されています。あなたは常に最初から始まり、サイクルの1つを見つけようとする。もしあなたが最初のポイントから成功しなければ、あるポイントを上に移動し(j = j + 1)、再び始める。サイクルを見つけたら、2番目と3番目のポイント(y1とy2)を削除し、最初から元に戻ります。Python - 先頭へ戻るループwhileループ

負荷履歴の2番目のポイントが最初から1番目またはそれよりも高いかどうかを最初に判断する方法でalghoritmを実行したので、最初にどこから開始するのかを知ることができます。そこから、必要なものだけを探しているだけで、それも写真に記載されています。

私の問題: 私は2サイクルの非が発見された場合には、プログラムは、jに1を追加して、再び先頭から開始して行うような方法でこれをプログラムしたいと思いますサイクルが見つかるまで。私はwhileループを使い、true/falseと一緒にしようとしましたが、それは仕事です。 some1がアイデアを持っていれば何も起こりません。

yは、ランダムな点のベクトルの簡単な例です。

y = [0.00, 2.00, 4.00, 5.00, 5.50, 6.00, 5.00, 4.00, 3.20, 3.50, 4.00, 4.50, 4.70, 4.80, 5.00, 4.50, 4.30, 4.00, 3.00, 2.00, 1.00, 
1.50, 2.50, 4.00, 4.50, 2.50, 1.50, 0.50, 0.30, 2.50, 3.00, 1.50, 2.00, 2.50, 5.00, 5.50, 6.00, 6.20, 5.50, 3.00] 


a = [] 
for j in range(len(y)): 
while j<(len(y)-4): 
    if y[j+1] > y[j]: 
     while False: 
      if y[j+2] >= y[j] and y[j+3] >= y[j+1]: 
       True 
       a.append(y[j+1])     
       del y[j+1] 
       a.append(y[j+1])     
       del y[j+1] 
      else: 
       j = j+1 
       if y[j] >= y[j+2] and y[j+1]>= y[j+3]: 
        stavek = True 
        a.append(y[j+1])      
        del y[j+1] 
        a.append(y[j+1])      
        del y[j+1] 
       else: 
        j=j+1 
        False 

    elif y[j+1] < y[j]: 
     while False: 
      if y[j+2] <= y[j] and y[j+3] <= y[j+1]:      
       a.append(y[j+1]) 
       del y[j+1] 
       a.append(y[j+1]) 
       del y[j+1] 
      else: 
       j = j+1 
       if y[j] <= y[j+2] and y[j+1]<= y[j+3]: 
        stavek = True 
        a.append(y[j+1]) 
        del y[j+1] 
        a.append(y[j+1]) 
        del y[j+1] 
       else: 
        j=j+1 
        False 
+0

コードを投稿する場合は、languageにタグを付ける必要があります。これは、人々があなたの質問を見つけるのを助け、構文着色にも影響します。 – crashmstr

+0

申し訳ありませんが、私はこのフォーラムを初めて使い、まだ慣れていません:) – mcluka

+0

[ツアー](http://stackoverflow.com/tour)と[How To Ask](http ://stackoverflow.com/help/how-to-ask) – crashmstr

答えて

0

while Falseは条件が満たされないため実行されません。おそらく、do - >whileのように見て、一度以上実行し、ループを続けるためにtrueまたはfalseに設定する新しい変数を導入する必要があります。