【问题标题】:I would like to extract a subvector based on an elementwise condition我想根据元素条件提取子向量
【发布时间】:2014-04-13 12:30:34
【问题描述】:

我有一个 matlab 向量

a = [1,2,3,4,5,6,7,8,9,10]

并希望根据布尔函数提取所有值,例如所有偶数。像这样的:

result = selector(a, is_even);
% result is now [2,4,6,8,10]

有没有简单的方法可以做到这一点?

此外,假设我有一个矩阵

A = [1,2,3 
     4,5,6,
     7,8,9]

是否还有一种方法可以选择以第一列中的偶数值开头的行?

result = selector(A, is_even);
% result is now a matrix with one row [4,5,6]

【问题讨论】:

    标签: matlab


    【解决方案1】:

    使用logical indexing

    第一个问题:

    result = a(mod(a,2)==0);
    

    第二个问题:

    result = A(mod(A(:,1),2)==0,:);
    

    【讨论】:

      【解决方案2】:

      Logical indexing 是你的朋友。

      简单使用:

      a(mod(a,2)==0)
      

      同样,a(mod(a,2)==1) 会为您提供所有奇数值。


      一旦你知道了这一点,你就可以用类似的方式轻松解决你的第二个问题。 :P

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多