I have a Nx2 matrix, and I want to check for the existence of elements in the second column in my first column.
What I have set up is a binary tree, with a Nx2 matrix of point indices indicating which point is connected to what. (i.e.[1 2] means point 1 is connected to point 2, etc). For my terminal end points, they never exist as beginning points, only end points, so with the way I have it set up, they will never be found in the first column.
What I want to use is the find function, which is fast. I have something working with the ismember function, but that can get to be very slow with larger trees. Some sample code I have is:
terminalIndices = ismember(connMx(:,2), connMx(:,1))
where connMx is my Nx2 matrix of point connection indices.
Other than that, what I would do (and saves some time with overlarge trees, but is too verbose) is looping from 1 to nPoints with the code:
counter = 1; for i=1:nPoints a = find(ccoFaceMx(:,1) == i) if a ~=  termIdxArray(counter) = a counter = counter+1; end end
Again, for smaller trees this is fine, but I can at times have trees larger than 1000 elements, and this function begins to slow down considerably then.
Are there any alternatives to this? Thanks for your advice!
No products are associated with this question.
Play games and win prizes!Learn more