Finding sequence in matrix
Afficher commentaires plus anciens
I have a matrix and I want find which row contains some sequence. For example:
- A= [8 5 2 3 -1 0 4 -2 5 0 0 0
- | 5 3 4 -2 1 6 -1 -3 0 0 0 0|
- | -1 3 5 2 0 4 2 0 0 0 0 0];|
- and sequence is:
- seq=[4 -2 1];
- Result shoulde be:
- Result=2
- I tried to use xcorr function like this:
- [m n]=size(A);
- for i=1:m
- fi(i)=max((xcorr(A(i,:),seq)));
- end
- [no index]=max(fi);
- result=index
- But it doesnt work in some cases. Thanks for any help.
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 11 Mar 2013
Try this:
A= [8 5 2 3 -1 0 4 -2 5 0 0 0
5 3 4 -2 1 6 -1 -3 0 0 0 0
-1 3 5 2 0 4 2 0 0 0 0 0]
template = [4 -2 1]
% Here's how to do it.
out = normxcorr2(template, A)
[row, column] = find(out == 1)
3 commentaires
Image Analyst
le 11 Mar 2013
Forgot to mention that it requires the Image Processing Toolbox.
Viktor
le 31 Mar 2013
Image Analyst
le 31 Mar 2013
Funny -- I just copied and pasted and it ran perfectly. Why do you say it doesn't work?
Catégories
En savoir plus sur Correlation and Convolution dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!