Clear Filters
Clear Filters

Finding specific values from a large matrix

6 views (last 30 days)
So I have a two matrices of 46878x1. On the first matrix I used inpolygon, which resulted in 18 points being identified. What I need to do is extract the corresponding values from the second matrix, D.
Anyone have any suggestions? I've tried using ismember but it hasn't worked because I'm not comparing equal values. The first matrix has ID points, while the second matrix has point values.
Thanks Meghan :)

Accepted Answer

Star Strider
Star Strider on 24 Aug 2016
The inpolygon function returns a logical array, so you need to use it to define the values in vector ‘A’ in order to match them to the elements in vector ‘B’.
I would do something like this:
inA = inpolygon(A, 1, xv, 1); % Guessing Your Code
inB = ismember(B,A(inA)); % Guessing Your Code
The ‘inB’ vector is a logical vector showing the locations in vector ‘B’ that are in the subset of ‘A’ addressed by logical vector ‘inA’.
Yours is certainly an novel way to use the inpolygon function. I’ll keep that in mind.
Meghan on 24 Aug 2016
Thanks for your help. Turns out I was a bit of a fool and it was as simple as b=d(in). Didn't think it would be that simple! I also didn't explain myself very well in the question so that you for trying to help :)

Sign in to comment.

More Answers (0)


Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!