[问题] 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