Finding sequence in matrix
이전 댓글 표시
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.
채택된 답변
추가 답변 (1개)
Image Analyst
2013년 3월 11일
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
Image Analyst
2013년 3월 11일
Forgot to mention that it requires the Image Processing Toolbox.
Viktor
2013년 3월 31일
Image Analyst
2013년 3월 31일
Funny -- I just copied and pasted and it ran perfectly. Why do you say it doesn't work?
카테고리
도움말 센터 및 File Exchange에서 Correlation and Convolution에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!