читать углы в радианах и конвертировать их в градусы / минуты / секунды - PullRequest
0 голосов
/ 05 мая 2010
n=0;
disp('This program performs an angle conversion');
disp('input data set to a straight line. Enter the name');
disp('of the file containing the input Lambda in radian:  ');
filename = input('   ','s');
[fid,msg] = fopen(filename,'rt');
if fid < 0
    disp(msg);
else
    A=textscan(fid, '%g',1);
    while ~feof(fid)
        Lambda = A(1);
        n = n + 1;
        A = textscan(fid, '%f',1);
    end
fclose(fid);    
end
Alpha=Lambda*180/pi;
fprintf('Angle converted from radian to degree/minutes/seconds:\n');
fprintf('Alpha      =%12d\n',Alpha);
fprintf('No of angles   =%12d\n',n);  

1 Ответ

4 голосов
/ 05 мая 2010

Чтобы преобразовать из град / мин / сек в градусы, которые вы используете:

Degree = MinutesOfArc/(60 MinutesOfArc/Degree) +
       + SecondsOfArc/(3600 SecondsOfArc/Degree)

Например, 45 градусов, 30 минут, 30 секунд = 45,508 градусов. Таким образом, вы можете инвертировать эту операцию, выполнив:

AlphaDeg = floor(Alpha);
AlphaMinAndSec = (Alpha - AlphaDeg)*60;
AlphaMin = floor(AlphaMinAndSec);
AlphaSec = (AlphaMinAndSec - AlphaMin)*60;

Обратите внимание, что это не работает для отрицательных входов из-за операции floor. Это также медленнее, чем могло бы быть. Но если ваш вопрос - домашнее задание, я оставлю вас выяснить остальное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...