Я пытаюсь рассчитать скорость объекта на основе векторов его координат X и Y. Первоначально я использовал скорости обоих компонентов, а затем применил теорему Пифагора, чтобы сложить их вместе. mdcx
и mdcy
— векторы координат x и y соответственно.
for i=2:length(mdcx)
xdif(i)=mdcx(i-1)-mdcx(i);
end
xvel=(xdif/(1/60));
for i=2:length(mdcy)
ydif(i)=mdcy(i-1)-mdcy(i);
end
yvel=(ydif/(1/60));
v=hypot(xvel,yvel);
Друг упомянул, насколько это глупо, и я понял, что есть гораздо более приятный способ сделать это:
d = hypot(mdcx,mdcy);
for i = 2:length(d)
v(i,1) = d(i)-d(i-1);
end
v = v/(1/60);
Это все хорошо, за исключением того, что два метода дают разные ответы, и я не могу понять, почему. Пример результатов метода №. 1 являются:
- 3.39676316513232
- 1.69387130561921
- 1.21490740387897
- 1.40071410359145
- 0.702281994643187
- 1.02703456611744
- 0.933380951166206
и эквивалентный раздел из метода №. 2:
- 3.00324976888577
- 1.41904819171419
- 0.473028796076438
- 0.772429851826608
- 0.126083801997687
- 1.02574816428026
- 0.541889676174012
Мой вопрос
Что я здесь делаю неправильно? Почему они не дают одинаковых результатов? Вероятно, это глупая ошибка, но я не могу понять, откуда она взялась. Правильно ли я использую hypot
?
Заранее спасибо!
hypot
? - person David K   schedule 28.07.2014