2
tfinal = 10;
dt_fine = 0.0000001;
tvec_fine = [0:dt_fine:tfinal];
find(tvec_fine==0.1)
ans =
Empty matrix: 1-by-0
爲什麼上面的代碼找不到索引tvec_fine
有條目0.1。它顯然具有基於tvec_fine
的定義的條目。Matlab函數查找不起作用浮點數
tfinal = 10;
dt_fine = 0.0000001;
tvec_fine = [0:dt_fine:tfinal];
find(tvec_fine==0.1)
ans =
Empty matrix: 1-by-0
爲什麼上面的代碼找不到索引tvec_fine
有條目0.1。它顯然具有基於tvec_fine
的定義的條目。Matlab函數查找不起作用浮點數
這是因爲浮點的精度很窄,0.1最終可能會以0.10000001比0.1000000002爲例。
這是一個非常粗略的描述,只是爲了給您一個想法,正如評論中指出的那樣,更多開發的答案和解決方案已經在SO上提供。
aha,浮點精度 - https://stackoverflow.com/questions/686439/why-is-24-0000-not-equal-to-24-0000-in-matlab – GameOfThrows