0

私は実際のデータのシミュレーションを行うつもりです。つまり、不規則な時間間隔でデータを生成します。以下は、不規則な時間 (データではない) をシミュレートするために Python で記述したプロトタイプ コードですが、その結果、ループの実行速度が速すぎて、生成される各「時間」(dat) が同じタイム スタンプで生成されます。このコードに加えて、データ セットをフィードし、これらの不規則なタイム スタンプでデータを渡すつもりです。

import time,random

Tadd=0.1
start=time.time()
while time.time()<(start+Tadd):
     x=random.uniform(0,1)
     if x<0.5:
         dat=time.time()
         print dat
     else:
         pass

出力は何かでした。

1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95

だから私の質問は:

  1. このようにコーディングすることは実行可能または「現実的」ですか? それとも、テキスト ファイルを 1 行ずつ読むほうがよいのでしょうか。たとえば、1 行目のプロセスを読み取り、2 行目のプロセスを読み取ります .... 私の意図は、実際にはロボットの位置特定のためにセンサー データを読み取ることです。しかし、これは最高のシミュレーションです。イベントを使用して、マウスからデータを生成できるのではないかと考えていました。どうすればこれに対処できるかについて、誰かが洞察と提案を提供できますか? それとも、シミュレートされた設定から実際の設定に直接飛び込んで、超音波センサーを購入したほうがよいのでしょうか。

  2. または、私が正しい軌道に乗っている場合、これは十分に優れたシミュレーションです. この場合、各「時間」(dat)が他と区別されるように、時間間隔の感度を下げるにはどうすればよいですか。

4

2 に答える 2

1

間の乱数を生成し、それを現在の時刻に追加するだけです。これは、過去の時間のみを必要としないことを前提としています。

編集: これで、コードはタイムスタンプを昇順で生成し、平均 1 秒間隔で区切られます。

import time,random

Tadd=0.1
start=time.time()
init = 0
while time.time()<(start+Tadd):
     x=random.uniform(init,init+1)
     dat=time.time()+x
     init+=1;
     print dat

print start, start+Tadd
于 2016-12-28T04:10:59.723 に答える
0

不規則な間隔で到着するデータをシミュレートするのは難しくありません。ただし、(コードの実行時間は別として) データ ポイント間に遅延を追加していないため、明示的に追加することをお勧めします。たとえば、このコードは 5 秒間実行され、ランダムな間隔で時間を出力します。データ ソースに合わせてこれを微調整することは難しくありません。

import time
import random

run_time = 5
start = time.time()
now = time.time()
while now < start + run_time:
    print now
    time.sleep(random.random())
    now = time.time()
于 2016-12-28T04:13:53.827 に答える