2016-11-11 3 views
0

Iは、サイクル負荷にプロットされているベクター、sigma=[s1, s2, s3, s4, s5, s6, s7]を有する旋削。この問題は残念ながらMATLABではまだありません。サイクル負荷のポイント識別

どのようにターニングポイントを特定しますか?
どのように非転換点を特定するのですか? (s2、s6)

+0

私のサイクルロードは今変換され、常に次のスタイルのベクトルが得られます: 'sigma = [0,0,0、k、-k、k、0、k、-k ] '。あなたが見ることができるように、それには零点しかなく、同じパラメータpositivとnegativもあります。転換点を定義する新しい方法/より良い方法がありますか? – jdoubleu

答えて

1

私はプロットしたものと似たようないくつかのシグマ値を仮定しています。初めに余分なゼロを注意してください、それはあなたのプロットにラベルされたが、それはデータポイントであるようにプロットからは見えません。

>> sigma = [0 3 -1 -3 1 -2 0.5 3.5] 
>> sign(diff(sigma)) 

ans = 

    1 -1 -1  1 -1  1  1 

我々場合、sigmaが増加しているとどこが減少しているここは私に語りましたポイント

>> diff(sign(diff(sigma))) 

ans = 

    -2  0  2 -2  2  0 

第一の要素は、あなたのプロットの第一のポイント(ないシグマの第一値での対応を回すことになる差分値がゼロ以外のターニングポイントと非ゼロになりますでしょうもう一度差分を取ります私の配列)。 -ve値は凹状を示し、+ veは凸状の転向点を示す。この結果は、7番目の点が不確定なため、7つの点について6つの要素しか持たないことに注意してください。

>>turning = find(diff(sign(diff(sigma)))) 
>>nonTurningIdx = find(diff(sign(diff(sigma))) == 0) 

turning = 

    1  3  4  5 


nonTurningIdx = 

    2  6 
+0

ありがとう、いくつかのガイ!!すべてのサイクルロードがゼロから始まるのは間違いありませんか? – jdoubleu

+0

配列は常に0で始まることを確認する必要がありますか?その入力フォームのためではない場合、あなたのコードが動作するように、配列の先頭にゼロを追加する必要がありますか? – jdoubleu

+0

私はベクトル 'sigma = [0,0,1]'を置くと何が好きですか?シグマ(1)は転換点ではありませんが、シグマ(2) – jdoubleu