# How to find a vector multiple times in an array?

조회 수: 6 (최근 30일)
Tom Engels 2021년 8월 5일
댓글: Tom Engels 2021년 8월 5일
Good day to all,
I am facing the problem that I need to quickly find the positions of duplicates of a vector in an array.
Currently I am doing this with a for-statement. For this I run the whole array and compare the rows with my vector. The row has the same length as the vector. This leads to very high run times.
With "ismember" I can check if there are duplicates and also determine the position of the first duplicate. However, the vector can occur several times in the array.
Example:
A = [1 3 4] %x,y,z-coordinates - vector
B = [2 3 4; 1 3 4; 5 5 6; 3 4 6; 1 3 4]; %array
The goal here would be to get the indexes 2 and 5.
Can anyone help me with this?
Many greetings
Tom

댓글을 달려면 로그인하십시오.

### 채택된 답변

Chunru 2021년 8월 5일
A = [1 3 4] %x,y,z-coordinates - vector
A = 1×3
1 3 4
B = [2 3 4; 1 3 4; 5 5 6; 3 4 6; 1 3 4]; %array
find(all(A==B, 2)) % 2 is for row dim
ans = 2×1
2 5

댓글을 달려면 로그인하십시오.

### 추가 답변 (1개)

Bruno Luong 2021년 8월 5일
편집: Bruno Luong 2021년 8월 5일
A = [1 3 4]; %x,y,z-coordinates - vector
B = [2 3 4; 1 3 4; 5 5 6; 3 4 6; 1 3 4]; %array
% which row match
find(ismember(B,A,'rows'))
ans = 2×1
2 5
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Tom Engels 2021년 8월 5일
Thank you all very much. It works great!

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

R2020b

### Community Treasure Hunt

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

Start Hunting!

Translated by