Check for coordinate pairs matches in .mat file

조회 수: 6 (최근 30일)
rbharrs
rbharrs 2021년 10월 25일
댓글: Star Strider 2021년 10월 25일
I have a .mat file with with four variables : target, time, x and y. Given a pair of x and y detection on a object tracker, I want to check if the pair appears in the file. How do I iterate through this variable to find a matching pair? I don't need the index, just a true of false of whether the match exists or not.
Pseudocode:
load .mat file
isAMatch = -1
if exist(x,y)
isAMatch = 1
else
isAMatch =0
end

채택된 답변

Star Strider
Star Strider 2021년 10월 25일
If I understand the problem correctly, the ismember function may be appropriate —
List = randi(9, 10, 2)
List = 10×2
7 1 6 8 5 4 6 1 3 8 1 8 9 5 5 5 4 1 4 1
toMatch = randi(9, 1, 2)
toMatch = 1×2
6 1
matchedRows = ismember(toMatch, List, 'rows')
matchedRows = logical
1
numberMatched = nnz(matchedRows)
numberMatched = 1
.
  댓글 수: 1
Star Strider
Star Strider 2021년 10월 25일
My pleasure!
Probably something like this (since I have no idea what the data are) —
yourMatrix = randi(9,10,4)
yourMatrix = 10×4
1 9 5 7 5 4 3 1 9 7 9 2 5 6 2 7 6 1 4 8 1 8 7 2 4 4 2 8 8 4 2 5 8 1 3 3 8 8 7 3
toMatch = yourMatrix(:,[1 2])
toMatch = 10×2
1 9 5 4 9 7 5 6 6 1 1 8 4 4 8 4 8 1 8 8
This should work without changing anything other than the ‘yourMatrix’ variable name in ‘toMatch’.
.

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

추가 답변 (1개)

Ive J
Ive J 2021년 10월 25일
Assuming both x and y are vectors of same length, this might work:
x = randi([0 5], 10, 1);
y = randi([0 5], 10, 1);
myPairedXY = [2 3]; % i.e. x == 2 and y == 3
isMatched = any(x == myPairedXY(1) & y == myPairedXY(2))
isMatched = logical
0

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by