cosd() giving similar value for different angles

2 次查看(过去 30 天)
I have the following code. Though latitude(i) and longitude(i) have different values in degree, Ut and Un are giving the same value. Please help me to find the problem in the following code. Ut and Un should be little different than each other. Thanks a lot
data = load('LatLong.txt');
distance = data(:, 1);
speed_km = data(:, 2);
latitude = data(:, 3);
longitude = data(:, 4);
for i = 1:length(speed_km)
speed_r(i) = speed_km(i) * cosd(latitude(i)) * cosd(longitude(i));
speed_t(i) = speed_km(i) * cosd(latitude(i)) * sind(longitude(i));
speed_n(i) = speed_km(i) * sind(longitude(i));
end
Ur = speed_r;
Ut = speed_t;
Un = speed_n;
figure;
plot(distance, Ur, 'b');
hold on
plot(distance, Ut, 'r');
hold on
plot(distance, Un, 'g'); % need correction for Ut and Un as I am getting only one line (green)
  3 个评论
Ismita
Ismita 2024-3-15
编辑:Walter Roberson 2024-3-15
Thanks @Walter Roberson, I have attached the txt file.
Thanks @Paul. Ur, Ut and Un are speed in RTN coordinate. Ur is ok but Ut and Un should be little different. Comparing
speed_t(i) = speed_km(i) * cosd(latitude(i)) * sind(longitude(i));
speed_n(i) = speed_km(i) * sind(longitude(i));
I have found that cosd(latitude) is just 1 for all i as the code is taking instead of the small variation

请先登录,再进行评论。

回答(1 个)

Paul
Paul 2024-3-15
data = load('LatLong.txt');
speed_km = data(:, 1);
latitude = data(:, 2);
longitude = data(:, 3);
The latitude is quite small, assuming it's actually in degrees.
figure
plot(latitude)
However, the cosd of the latitude isn't exactly one, though it's quite close to one as expected.
figure
plot(cosd(latitude))

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by