Найти первое вхождение любого числа вектора - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу найти первое вхождение 2,3 или 5 в х.Вывод должен быть 7, так как 3 появляется первым в индексе 7. Как мне это сделать?

x = [0 0 0 0 1 1 3 5 2 0 0];
y = [2 3 5]; 

output = 7

Я могу использовать find (x == 3, 1), чтобы найти только одно число, но как мне сделать это для нескольких чисел?

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

MATLABs find уже является правильным выбором в комбинации с ismember

В этом случае

>> find(ismember(x,y),1)

будет делать то, что вы хотите.Возвращает индекс первого вхождения массива y в массив x.Это будет работать для любых длин, которые может иметь y.

0 голосов
/ 27 сентября 2018

Find () принимает логический термин в качестве аргумента, поэтому вы можете использовать свой вызов, но вместо проверки только для 3 используйте что-то вроде: (x == 2 || x == 3 || x == 5)

Я вообще, вы можете использовать функцию intersect ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...