Hello, I have two matrices of different sizes and I want to find the indices for the elements in the bigger matrix that match with those in the smaller one, allowing for repetition?
조회 수: 4 (최근 30일)
이전 댓글 표시
Hello, I have two matrices of different sizes and I want to find the indices for the elements in the bigger matrix that match with those in the smaller one, allowing for repetition? A=[1 1 1 2 3 5 5 1 ] B=[1 2 5] I want to get C=[1 2 3 4 6 7 8]
댓글 수: 1
Jorge Mario Guerra González
2017년 1월 20일
For the forum order, try to summarize the title of the post into a shorter sentence. Check the answer I give you below.
채택된 답변
Image Analyst
2017년 1월 20일
Use ismember():
A=[1 1 1 2 3 5 5 1 ]
B=[1 2 5]
% Want C=[1 2 3 4 6 7 8]
[inA, inB] = ismember(A, B)
C = find(inA)
댓글 수: 2
추가 답변 (1개)
Jorge Mario Guerra González
2017년 1월 20일
Hello Alaa, I believe the way to do it is just comparing array A with each element of B using find function. There must be a smarter way to it, but this example gives the output you want.
A=[1 1 1 2 3 5 5 1];
B=[1 2 5];
result=[];
for i=1:length(B)
C=find(A==B(i));
result=[result C]; %#ok<AGROW>
end
result=sort(result);
disp(result);
I hope it works for you
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!