Для этого вы можете использовать strfind
.Хотя эта функция не задокументирована, она работает и для числовых векторов:
>> x = [7 4 5 2 4 5];
>> y = [5 2 4];
>> strfind(x, y)
ans =
3
Однако она не найдет NaN
.Это согласуется с тем фактом, что два NaN
не равны друг другу :
>> x = [7 4 NaN NaN NaN 5];
>> y = [NaN NaN NaN];
>> strfind(x, y)
ans =
[]
Так что если шаблон, который вы хотите найти, состоит из NaN
вам нужно сначала преобразовать в логический вектор:
>> x = [7 4 NaN NaN NaN 5];
>> y = [NaN NaN NaN];
>> xNaN = isnan(x);
>> yNaN = isnan(y);
>> strfind(xNaN, yNaN)
ans =
3
Или в этом случае вы также можете использовать сверточность :
>> find(conv(xNaN, yNaN, 'valid')==numel(yNaN))
ans =
3