Найти векторные элементы, соответствующие двум условиям в MATLAB
у меня есть вектор a = [1 5 3 4 2]
. Я хочу найти все элементы, которые 1<a<5
. Как это сделать в Matlab?
лично я разработал одно решение, но оно громоздкое:
a = [1 5 3 4 2];
ix = find(a>1);
ix = ix(find(a(ix)<5));
disp(a(ix))
что может быть лучше?
3 ответов
использовать логические индексации:
>> a = [1 5 3 4 2];
>> a = a(1 < a & a < 5)
a =
3 4 2
для ismember является хорошим выбором для дискретных случаев
a = [1 5 3 4 2];
find(ismember(a, 2:4))