How can I find indices?
조회 수: 2 (최근 30일)
이전 댓글 표시
I have two matrices:
A=[1 2 3 3 1 1 2 1;
1 1 1 2 2 3 2 3];
B=[2 1;
1 3];
The output matrix will be either
indx=[2, 6];
or
indx=[0 1 0 0 0 1 0 0];
Is there any smart way? I can definately solve it by using loop and conditional statement.
Appreciated!
댓글 수: 2
채택된 답변
Stephen23
2021년 5월 27일
A = [1,2,3,3,1,1,2,1;1,1,1,2,2,3,2,3]
B = [2,1;1,3]
[~,X] = ismember(B.',A.','rows')
댓글 수: 0
추가 답변 (1개)
Image Analyst
2021년 5월 27일
Explain to me how you got [2,6] because it's not obvious to me. Your tag says "matches" and to find B in A, you can do this:
A=[1 2 3 3 1 1 2 1;
1 1 1 2 2 3 2 3];
B=[2 1;
1 3];
[rowsA, colsA] = size(A);
[rowsB, colsB] = size(B);
counter = 1;
index = [];
for col = 1 : (colsA - colsB + 1)
subA = A(:, col : col + colsB - 1)
if isequal(subA, B)
index(counter) = k;
end
end
index
but you can see your B never appears anywhere in your A. Are you perhaps just looking at the top row of each? But even that will not work because [2,1] occurs only at column 7-8.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!