1. 程式人生 > >關於matlab中find函式失效的問題

關於matlab中find函式失效的問題

matlab中的find函式可以返回指定元素的位置,但是有時候會發現矩陣中明明存在一個數,但是返回位置卻是空的,即找不到指定元素的位置。這時候需要考慮的是matlab的精度問題。如下圖中,表面上第一個元素是0.6678,但是[i j]=find(a==0.6678)返回的卻是空值,原因很可能是matlab的精度問題。具體地,點選0.6678這個數可能並不是0.6678,小數點後面可能還存在多個小數位,正確的做法應該是[i j]=find(abs(a-0.6678)<1e-5),其中1e-5控制精度,這時候一般就會得到期待的返回值了。