我有一个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]
答案 0 :(得分:4)
答案 1 :(得分:3)
Logical indexing是你的朋友。
只需使用:
a(mod(a,2)==0)
同样,a(mod(a,2)==1)
将为您提供所有奇数值。
一旦你知道这一点,你就可以用类似的方式轻松解决你的第二个问题。 :P