2010-05-05 6 views
0
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); 
+0

Qu'est-ce que c'est? .. merci de le formater .. – SysAdmin

+3

Quelle est la question ici? – Jonas

+1

Vous avez besoin d'une balise 'homework'? –

Répondre

4

Pour convertir à partir deg/min/sec à des degrés que vous utilisez:

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

Par exemple, 45 °, 30 min, 30 sec = 45.508 degrés. Ainsi, vous pouvez inverser cette opération en faisant:

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

Notez que cela ne fonctionne pas pour les entrées négatives en raison de l'opération floor. C'est aussi plus lent que ça pourrait l'être. Mais au cas où votre question serait de devoirs, je vous laisserai décider du reste.

+2

+1 pour "le reste est laissé à l'étudiant pour un exercice." – Marc

Questions connexes