Я пытаюсь создать функцию, отвечающую за поиск делителя на 90 фигур меньше заданного tempMaxAngle. Например, моя функция должна возвращать 6 для tempMaxAngle = 7 или 30 для tempMaxAngle = 31 или 22.5 для tempMaxAngle = 23 и т. Д. К сожалению, он работает неправильно - я получаю странные значения. Вот мой алгоритм:matlab дает неправильный результат для функции modulo
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 = 7 (в то время как результат раздела):
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 и т.д. и аналогичные для модульной функции? Как я могу это исправить?
Почему вы не делаете 'мод (90,7)' напрямую? – Oleg
Потому что это функция, которую я хотел бы использовать для других значений, а не только 7. – Arxas
Теперь я задаю вопрос, он должен прочитать: find 'x ≤ tempAngle', который равномерно делит 90. – Oleg