#matlab
Вопрос:
учитывая вектор v, я должен найти индексы idxeven
всех четных записей и вернуть их в виде вектора.
v = [1 2 6 4 8 3 14 17 pi]
и я хочу вернуться:
idxeven = [2 3 4 5 7]
Я пробовал idxeven=find(v)
, но он просто возвращает индексы в виде вектора. Любая помощь будет признательна.
Комментарии:
1. Ладно, значит, ты пытался
idxeven=find(v)
. Что, если бы вы попробовалиidxeven=find(evenv)
«гдеevenv
1
только гдеv
даже» и0
«иначе»?
Ответ №1:
k = find(X) возвращает вектор, содержащий линейные индексы каждого ненулевого элемента в массиве X.
сначала создайте массив X так, чтобы для четного числа в v X было равно единице, а для остальных-нулю :
X=(mod(v,2)==0);
затем используйте find для поиска нужных индексов :
idxeven=find(X);