主要内容

本页采用了机器翻译。点击此处可查看英文原文。

degrees2dms

将度转换为度-分-秒

说明

DMS = degrees2dms(angleInDegrees) 将包含小数部分(有时称为“十进制度数”)的度数值转换为度分秒表示形式。

示例

示例

全部折叠

将指定为实数列向量的角度转换为度分秒表示法。输出值是一个 n×3 实数矩阵。输出中的每行指定一个角度,格式为 [Degrees Minutes Seconds]

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]

  • D 包含“degrees”元素,且为整数值。

  • M 包含“分钟”元素,且为整数值。

  • S 包含“秒”元素,可能包含小数部分。

在任意给定的 DMS 行中,首个非零元素的符号指示整体角度的符号。正数表示北纬或东经;负数表示南纬或西经。该行中剩余的元素都将具有非负值。

版本历史记录

在 R2007a 中推出