【问题标题】:Get vector of indexes containing values between two numbers获取包含两个数字之间的值的索引向量
【发布时间】:2012-07-29 08:36:42
【问题描述】:

我有一个名为time 的向量,其中包含时间值。我想获得time 的索引向量,其中的值介于阈值x 和阈值y 之间。

这无疑是微不足道的,但我在这里有点纠结于 Matlab 语法。任何帮助将不胜感激。

Blz

【问题讨论】:

    标签: matlab vector slice


    【解决方案1】:
    time=5:20
    idx = find(time > 10 & time < 15) % indices
    values=time(time(:)>10 & time(:)<15) % values
    

    给了

    time =
    
         5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20
    
    
    idx =
    
     7     8     9    10
    
    
    values =
    
        11    12    13    14
    

    【讨论】:

    • @Frank Dernoncourt,我说得太快了(即:在测试之前!)。这似乎不起作用。在您的代码中,我们返回的是time,而不是索引。也就是说,我已经修复了你的代码,所以无论如何我都会接受这个答案。解决方案是idx = find(time(:) &gt; 10 &amp; time(:) &lt; 15)
    • 哎呀对不起,好像我也说得太快了。我将编辑我的答案,以免其他人被我最初的答案误导。
    • find(:) 的使用是多余的,time(time &gt; x &amp; time &lt; y) 就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多