Effacer les filtres
Effacer les filtres

I have an array [0,0,0,0,1​23,0,138,4​4,123,0,0,​0,0,0,135,​0,123,0,0,​125.......​.] I want to find starting and ending index for pattern [123,0] like[5,6,9,10....] Please help me find the ending indices

1 vue (au cours des 30 derniers jours)
I can find the starting index using below function. function start = findPattern2(array, pattern)
len = length(pattern);
start = find(array==pattern(1));
endVals = start+len-1; start(endVals>length(array)) = [];
for pattval = 2:len
locs = pattern(pattval) == array(start+pattval-1);
start(~locs) = [];
end

Réponse acceptée

Jan
Jan le 14 Juin 2018
Modifié(e) : Jan le 14 Juin 2018
pattern = [123, 0];
a = [0,0,0,0,123,0,138,44,123,0,0,0,0,0,135,0,123,0,0,125];
idx = strfind(a, [123,0]);
result = reshape([idx; idx + length(pattern) - 1], 1, []);

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by