2016-08-31 4 views
0

私は、特定のノードAが、送信したノードのセットからの肯定応答の時間間隔t(Aの範囲内の最も遠いノードと信号の伝搬速度の間の距離によって定義される)を待つ方式をMatlabで実装しています。メッセージ。期間tで肯定応答を受信しない場合は、何らかの処置が必要です。 私はMatlabで時間をどのように実装するのか分かりません。それは可能ですか、私は何らかの方法を見いだす必要がありますか?matlabで時間をモデル化するには?

+0

あなたは待ちたいです特定の時間のために?はいの場合は、 'pause'コマンドを試してください。http://www.mathworks.com/help/matlab/ref/pause.html そうでなければ、あなたのタイムステップのデータを格納する配列や行列を作成することができます。 – RCaetano

+0

@RCaetano:お返事ありがとうございます...待ち時間は固定されていません...送信者と受信者の距離によって異なります。私はあなたのコメントの第2部分を理解できませんでした。あなたはそれを説明してもらえますか?おかげで –

+0

あなたは、3D世界(信号の場所)上を移動するポイントがある状況。列はX、Y、Zの位置にあり、各行はn番目のタイムステップでの信号の位置を示しているサイズ[3xT]の行列を持つことができます。例: '[0 0 0; 0 1 0; 0 2 0; 0 3 0] 'タイムステップが0.5秒と定義されていれば、時間0で信号は(0,0,0)にあり、時間0.5は(0,1,0)であることを意味する。したがって、行列をループする 'for'を作成し、各行に対して' pause(0.5) 'を追加するか、別のアクションを実行することができます。あなたの位置が時間に依存する式を持っていれば、行列を作ることができます。 – RCaetano

答えて

2

あなたは、MATLABの強力なdatetimeを使用することができます。

たとえば:あなたは、信号が(この例では、40ミリ秒)許容遅延内に受信されたかどうかを確認したい:

% t = datetime(Y,M,D,H,MI,S,MS); 
send = datetime(2016,08,31,06,01,00,00); 
receive=datetime(2016,08,31,06,01,00,100); 
acceptableDelay=datenum(40/(24*60*60*1000)); 

    if ((receive-send)<acceptableDelay) 
     disp('Well received!') 
    else 
     disp('Late!') 
    end 
+0

ありがとうございました。本当に助かりました。 –

+0

もう1つ質問があります。 x =(receive-send)の場合、x = 00:00:00になります。ここでは、receiveとsendには異なる時間値が入ります。ミリ秒までxの正確な値を表示するにはどうすればよいですか?最高の挨拶 –

+1

[datestr](http://www.mathworks.com/help/matlab/ref/datestr.html?s_tid=gn_loc_drop#bteqx6c)を試して、ミリ秒単位で表示してください。 – hammadian

関連する問題