用MATLAB如何找到軌跡圖中的拐點?
01-08
比如上圖,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分析法中,最大特徵值有虛部嗎?是否可以求出所有特徵值找最大的?