メインコンテンツ

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

degrees2dms

度を度分秒に変換する

説明

DMS = degrees2dms(angleInDegrees) は、小数部分 (「小数度」と呼ばれることもあります) を含む可能性のある度単位の値から、度分秒表現に変換します。

すべて折りたたむ

実数値の列ベクトルとして指定された角度を度分秒表現に変換します。出力値は n 行 3 列の実数値行列です。出力の各行には、[Degrees Minutes Seconds] の形式で 1 つの角度が指定されます。

angleInDegrees = [ 30.8457722555556; ...
                  -82.0444189583333; ...
                   -0.504756513888889; ...
                    0.004116666666667];
dms = degrees2dms(angleInDegrees)
dms = 4×3

   30.0000   50.0000   44.7801
  -82.0000    2.0000   39.9082
         0  -30.0000   17.1235
         0         0   14.8200

度単位の角度を度分秒表現に変換します。angl2str が提供するデフォルトの表示を使用して結果を表示します。

angleInDegrees = [ 30.8457722555556; ...
                  -82.0444189583333; ...
                   -0.504756513888889; ...
                    0.004116666666667];
angl2str(angleInDegrees,'ns','degrees2dms')    
ans = 4×25 char array
    ' 30^{\circ} 50' 44.78" N '
    ' 82^{\circ} 02' 39.91" S '
    '  0^{\circ} 30' 17.12" S '
    '  0^{\circ} 00' 14.82" N '

または、角度を度分秒表現に変換し、sprintf を使用してカスタム表示形式を指定します。結果は単一の文字列になります。

dms = degrees2dms(angleInDegrees)
dms = 4×3

   30.0000   50.0000   44.7801
  -82.0000    2.0000   39.9082
         0  -30.0000   17.1235
         0         0   14.8200

nonnegative = all((dms >= 0),2);
hemisphere = repmat('N', size(nonnegative));
hemisphere(~nonnegative) = 'S';
absvalues = num2cell(abs(dms'));
values = [absvalues; num2cell(hemisphere')];
sprintf('%2.0fd:%2.0fm:%7.5fs:%s\n',values{:})
ans = 
    '30d:50m:44.78012s:N
     82d: 2m:39.90825s:S
      0d:30m:17.12345s:S
      0d: 0m:14.82000s:N
     '

入力引数

すべて折りたたむ

角度(度単位)。n 要素の実数値列ベクトルとして指定します。

出力引数

すべて折りたたむ

度分秒表現の角度。n 行 3 列の実数値行列として返されます。各行は [D M S] の形式で 1 つの角度を指定します。

  • D には「度」要素が含まれており、整数値になります。

  • M には「分」要素が含まれており、整数値になります。

  • S には「秒」要素が含まれており、小数部分が含まれる場合があります。

DMS の任意の行では、最初のゼロ以外の要素の符号が全体の角度の符号を示します。正の数は緯度または経度を示し、負の数は緯度または経度を示します。その行の残りの要素は非負の値になります。

バージョン履歴

R2007a で導入