2013-08-29 64 views
-1

我想創建函數負責找到比給定tempMaxAngle更小的90數字的除數。例如我的函數應該爲tempMaxAngle = 7返回6,或者爲tempMaxAngle = 31返回30,或者爲tempMaxAngle = 23返回22.5等。不幸的是,它不能正常工作 - 我得到奇怪的值。這是我algorythm:爲tempMaxAngle = 7(同時段的結果)matlab給出了模數函數的錯誤結果

function maxAngle = angletest(tempMaxAngle) 
    format long g; 
    tempMaxAngle = tempMaxAngle*10; 
    tempMaxAngle = floor(tempMaxAngle)/10; 
    while mod(90,tempMaxAngle)>0 
     modResult =mod(90,tempMaxAngle) 
     tempMaxAngle = tempMaxAngle - 0.1 
    end 
    maxAngle=tempMaxAngle; 
end 

部分結果:

tempMaxAngle = 

        6.9 


modResult = 

    0.299999999999995 


tempMaxAngle = 

        6.8 


modResult = 

     1.59999999999999 


tempMaxAngle = 

        6.7 


modResult = 

     2.89999999999998 


tempMaxAngle = 

        6.6 


modResult = 

     4.19999999999998 


tempMaxAngle = 

        6.5 


modResult = 

     5.49999999999998 


tempMaxAngle = 

        6.4 


modResult = 

    0.399999999999966 


tempMaxAngle = 

        6.3 


modResult = 

     1.79999999999996 


tempMaxAngle = 

        6.2 


modResult = 

     3.19999999999997 


tempMaxAngle = 

        6.1 


modResult = 

     4.59999999999996 


tempMaxAngle = 

        6 


modResult = 

     5.99999999999995 


tempMaxAngle = 

        5.9 


modResult = 

     1.49999999999994 


tempMaxAngle = 

        5.8 


modResult = 

     2.99999999999993 


tempMaxAngle = 

        5.7 


modResult = 

     4.49999999999993 


tempMaxAngle = 

     5.60000000000001 


modResult = 

    0.399999999999929 

爲什麼它一直returing那種值,而不是簡單的6.9,6.8,6.7,等等。和模數函數類似嗎?我該如何解決它?

+0

爲什麼你不直接執行'mod(90,7)'? – Oleg

+0

因爲這是一個我想用於其他值的函數,不僅僅是7. – Arxas

+0

現在我得到這個問題,它應該是:find'x≤tempAngle',它將90均勻地分開。 – Oleg

回答

相關問題