我的Matlab代码不起作用(非常简单但很奇怪'如果'语句问题)

时间:2016-11-07 17:44:08

标签: matlab if-statement for-loop matrix vector

"arn:aws:s3:::bucket-name/*"

基本上,问题是if语句中F的第一个值(对于j = 1)被忽略,即使theta的值是180.要检查,我已经完成了&#39 ;谁是theta'甚至将theta == 180写入它返回0的代码中。对于j = 2:4,尽管j = 2,代码仍能正常工作,同时产生θ值为180。它几乎就像它完全跳过if语句j = 1一样。我认为这与F是唯一具有三个非零分量的矩阵向量这一事实有关,但仍然没有&#39我知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

theta可能是两倍且非常接近180但不完全180.00000001 ~= 180。与给定的容差进行比较可能更好。

tol = 1e-3;
if abs(theta-180)<tol
...
end

Matlab也有内部浮点精度eps,这可能是一个有趣的读物。

另外,'else-if'语句应该elseif,但这可能只是复制粘贴的错误。