Finding an array of numbers in an array

Hi
I have the attached coords_17 array, which is 2092 x 3 dimensional. Within this array, I want to find say the row which contains the coordinates [44, -30, 54]. However, the following commands fails somehow:
find(coords_17 == [44, -30, 54])
How can I find the relevant coordinates correctly? Many thanks

 采纳的回答

I would use the ismember (link) function.

Try this:

target = [44, -30, 54];
Lidx = ismember(coords_17, target, 'rows');
row_number = find(Lidx)
row_number =
     2

4 个评论

Thanks! What is the reason it does not work with a simple "find"?
Correct.
Using ismember (or ismembertol if you are matching non-integers) first, and then using find is much more efficient.
It might be possible with find, however that would likely require matching each column and then searching for matching row indices.
As always, my pleasure!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Operators and Elementary Operations 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by