【问题标题】:MATLAB find array element and conditionally add to a constantMATLAB 查找数组元素并有条件地添加到常量
【发布时间】:2015-04-24 02:37:26
【问题描述】:

鉴于这个角度数组:

  123.5280
  129.5280
  129.0130
  136.2960
  139.1640
  145.7430
  148.9800
  156.9080
  168.3440
  179.2340
    3.0840
    3.9720

我想识别那些

angles(angles < 90)

ans =

    3.0840
    3.9720

然后将 180 添加到仅具有结果的那两个上

  123.5280
  129.5280
  129.0130
  136.2960
  139.1640
  145.7430
  148.9800
  156.9080
  168.3440
  179.2340
  183.0840
  183.9720

我如何做到这一点?

【问题讨论】:

  • ind = angles &lt; 90; angles(ind) = angles(ind) + 180;
  • @Jubobs:没有什么要补充的了。让它成为答案!
  • 谢谢@Jubobs--请将其添加为答案,以便我给它打勾

标签: arrays matlab conditional addition


【解决方案1】:

您正在寻找的行为称为(阶段)展开,并且有一个内置函数 unwrap 用于此

res = unwrap(angles / 90 * pi) / pi * 90

请注意,unwrap 以弧度和 +/-pi 的跳跃工作,而不是您要求的 2*pi,因此我有意使用 90 * pi 而不是 180 * pi 进行缩放。另见讨论here

【讨论】:

    【解决方案2】:
    angles(angles < 90) = angles(angles < 90) + 180
    

    【讨论】:

      【解决方案3】:

      一行解决方案:

      angles=angles+(angles<90)*180;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多