任何人都可以向我解釋爲什麼會發生以下情況時,我用的是0:.1:1
- 範圍功能?
>> vecA = 0:.1:1;
>> vecB = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
>> vecA == vecB
ans =
1 1 1 0 1 1 1 1 1 1 1
爲什麼vecA(4)不等於0.3?他們看完全一樣;)
vecA =
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 11
0.7000 0.8000 0.9000 1.0000
>> vecB
vecB =
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 11
0.7000 0.8000 0.9000 1.0000
我覺得這裏採用的是精度的問題?或者我的理解有問題?
我使用7.11.1.866(R2010b)Service Pack 1 – powerbar
有趣的事情:'vecA(4) - 0.3 = 1.0e-016 * 0.5551' – powerbar
下面是一個比較實際值的簡單方法:'sprintf('%。20f \ n',vecA(4),0.3)'。也看看(0.3) – Peter