我想創建函數負責找到比給定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,等等。和模數函數類似嗎?我該如何解決它?
爲什麼你不直接執行'mod(90,7)'? – Oleg
因爲這是一個我想用於其他值的函數,不僅僅是7. – Arxas
現在我得到這個問題,它應該是:find'x≤tempAngle',它將90均勻地分開。 – Oleg