Azzera filtri
Azzera filtri

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 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Jan
Jan il 14 Giu 2018
Modificato: Jan il 14 Giu 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, []);

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by