用MATLAB如何找到軌跡圖中的拐點?

比如上圖,MATLAB中有什麼好的方法可以得到軌跡中曲率比較大的拐點(圖中用黃色圈 圈出來的點)呢?


你都說曲率了,就不會搜下參數方程曲線的曲率公式?把導數用差分近似代替就好。


你可以計算出每三個點之間的兩條向量的拐彎的角,串成一個數組,然後你畫出來,瞬間就明白了。


%首先需要用到二階差分,如果你的數據X是一個n*1矩陣。

Y=diff(X,2);

%接下來需要找到拐點位置。常數Z為你認為達到拐點的標準。

[I,J]=find(abs(Y)&>Z)


想問一下MATLAB中用什麼函數來畫這個軌跡圖呢?


由於你說這是一個軌跡,可以假設這串點是有順序的,就按順序每三點算一下夾角,找夾角的局部極大值。


看看 Y = diff( X ) 這個方程 試試diff(diff(X))


推薦閱讀:

matlab怎樣將有NaN的數據刪除整行?謝謝
推崇Mathematica的那些人,理由是什麼?
MATLAB 的符號計算原理是什麼,為什麼不能編譯為 C?
有關matlab循環怎麼改成矩陣運算?
用matlab求矩陣的最大特徵值怎麼求?AHP分析法中,最大特徵值有虛部嗎?是否可以求出所有特徵值找最大的?

TAG:演算法 | MATLAB | 數學建模 |