[問題] for的判斷式 無理數

作者: kid50927 (fish)   2014-08-06 15:00:12
抱歉標題不知道怎麼取比較好
我想請問如果我讓A矩陣乘以三角函數後
ex: cos(pi/4) -sin(pi/4) * 1
sin(pi/4) cos(pi/4) 2

A矩陣
把很多的A矩陣轉置 然後合成一個100*2的DATA矩陣
我的for回圈內的其中一條判斷式寫
for i=1:100
if ....
...
elseif DATA(i+1,1) == -sin(pi/4)*V(i)
...
end
end
可是他跑出來沒有elseif成立的時候
但我去看DATA(53,1)是等於-sin(pi/4)*V(i)的值
所以我想問的是 是不是有精確值還是甚麼的關係
使我先乘了一個無理數後 判斷式會有問題?
先謝謝大家
作者: kid50927 (fish)   2014-08-06 15:38:00
自問自答 是精確度的關西改成elseif round(DATA(i+1,1))==round(-sin(pi/4)*V(i))
作者: ejialan (eji)   2014-08-08 11:05:00
要判斷兩數是否相等用abs(a-b)<=tol tol是容許誤差你用兩邊round範圍太大了
作者: kid50927 (fish)   2014-08-08 15:36:00
哦哦 感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com