How do I find a specific x values in an array(?) of x,y locations?

16 次查看（过去 30 天）
Drew Ellington2022-1-8

I'm able to create a matrix of x, y values ,
coordinates = [1,2; 3,4; 10,5; 4,5];
and use find(x), to search in the array,
find(coordinates == 10);
however once I attempt to use a bigger matrix this function doesnt seem to work and I dont understand why,
find(locations==143.4955);
returns an empty matrix but I know there are x values with 143.4955 in the matrix, can anyone help me?

采纳的回答

Chunru 2022-1-8

% Now you have posted your data:
whos
Name Size Bytes Class Attributes ans 1x43 86 char locations 2670x2 21360 single
locations
locations = 2670×2
3.4017 263.0466 3.4017 263.0466 3.7207 87.7808 3.7207 87.7808 3.9423 249.8393 3.9423 249.8393 4.1351 96.5079 4.1351 96.5079 4.1892 83.5233 4.1892 83.5233
% floating point inside computer may not be exact
plot(locations(:,1)); hold on; plot(locations(:,2))
% Your data has values (in both columns) close to 143.4955
% In searching the closest points, you have to specify a suitable tolerance: 1e-4 below
% Search along the 1st column (you may have different criterion)
idx = find(abs(locations(:,1) - 143.4955) < 1e-4)
idx = 3×1
1284 1285 1286
locations(idx, :)
ans = 3×2
143.4955 158.7091 143.4955 158.7091 143.4955 158.7091
2 个评论显示隐藏 1更早的评论
Chunru 2022-1-23
See the data with your posted data.

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by