Matlab 我想根据元素条件提取一个子向量

Matlab 我想根据元素条件提取一个子向量,matlab,Matlab,我有一个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_e

我有一个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]
他是你的朋友

只需使用:

a(mod(a,2)==0)
类似地,
a(mod(a,2)==1)
将为您提供所有奇数值


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

第一个问题:

result = a(mod(a,2)==0);
result = A(mod(A(:,1),2)==0,:);
第二个问题:

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