【问题标题】:Matlab, how to filter a numeric vector by a condition?Matlab,如何按条件过滤数值向量?
【发布时间】:2012-01-30 17:36:55
【问题描述】:

在 Matlab 中,我有一个向量 X,它包含 N 个实数值:

  • 0.001
  • 0.003
  • 0.006
  • 0.009
  • 0.007
  • 0.006

我想创建一个新向量 Xb,它包含 X 的所有小于 0.005 (M

我试过了:

Xb = X

但它给了我一个包含 N 个值 0 或 1 的向量。

感谢

【问题讨论】:

  • 你可以使用这个代码:a=[0.001 0.003 0.006 0.007 0.009,0.006]; b = a(查找(a

标签: matlab vector filter


【解决方案1】:
>> Xb = X(X < 0.005)

Xb =

    0.0010    0.0030

【讨论】:

  • 有没有办法获取索引?
  • @fersarr 你可以使用find(X &lt; 0.005)找到索引
【解决方案2】:

您对代码Xb=X&lt;0.005 所做的是创建一个蒙版。简而言之,它会告诉您哪些值小于 0.005,但不会对列表进行排序。您想要的是按掩码对列表进行排序,这可以按照 jlrcowan 的建议进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多