Matlab中如何返回向量所有偶数元素对应的索引
实现方案
你之前的写法仅给find传入原向量,默认只会返回非零元素的索引,要筛选偶数需要额外增加判断条件。
正确实现代码如下:
v = [1 2 6 4 8 3 14 17 pi]; idxeven = find(mod(v, 2) == 0);
逻辑说明
mod(v,2)会对向量内每个元素做模2运算,偶数的运算结果为0,奇数、非整数(比如示例中的圆周率pi)运算结果非0mod(v,2) == 0会生成和原向量长度一致的逻辑向量,偶数对应位置为true,其余位置为falsefind函数最终返回所有逻辑值为true的位置索引,运行后得到的idxeven和你期望的[2 3 4 5 7]完全一致。
内容的提问来源于stack exchange,提问作者Lavorizia Vaughn
相关产品推荐
相关产品推荐

