Я вычисляю расстояние и скорость между координатами GPS (lat, long, height), и, похоже, он работает хорошо, когда я использовал одиночные значения. Однако у меня есть матрица из 79 координат GPS (матрица 3x79), и я хочу найти расстояние и скорость между каждыми двумя последовательными точками. Когда я пытаюсь использовать цикл for, вывод, который я получаю, это все нули, кроме первого и последнего значения (которые очень высоки).Для петли не работает по желанию
Я, вероятно, делать что-то глупо, но я могу определить его ... любые предложения приветствуются :)
for k=1:77
R=6378.1e3;
latDistance = copter_llh(1,k+1) - copter_llh(1,k);
lonDistance = copter_llh(2,k+1) - copter_llh(2,k);
a = sin(latDistance/2) * sin(latDistance/2) + cos(copter_llh(1,k))...
*cos(copter_llh(1,k+1)) * sin(lonDistance/2) * sin(lonDistance/2);
c = 2 *atan2(sqrt(a), sqrt(1 - a));
distance = R * c * 1000; % convert to meters
height = copter_llh(3,k+1) - copter_llh(3,k);
distance = sqrt((distance^ 2) + (height^2));
velocity = distance/0.1*60;
% stepsize =0.1min ___speed in m/s
distance(:,k)=(distance);
velocity(:,k)=(velocity);
end %-----
Это должно добавить компонент высоты точки к широте/широкому расстоянию. Я не стал матрицей из этого. – Buzz92
Думаю, я знаю, почему это происходит. Проверьте мой ответ. – rayryeng
Формула работает, когда я указываю точки, которые я хочу напрямую, а не когда я использую цикл for – Buzz92