How to allow a single overlap during chain growth?

3 views (last 30 days)
I have this code which doesn't allow any overlaps between chain segments. How can I modify it to allow a single overlap only.
Trajectory = [x+1 y;x-1 y;x y+1;x y-1];
check=reshape(old_steps(:,i),2,m/2)';
position=setdiff(Trajectory,check,'rows');
  4 Comments
Guillaume
Guillaume on 3 Nov 2019
Can there be any duplicate row in Trajectory?
Soma
Soma on 3 Nov 2019
No, Trajectory should be always unique. The duplication should be in check only.

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 3 Nov 2019
Edited: Guillaume on 3 Nov 2019
%this code only works if rows of Trajectory are unique
[intraj, where] = ismember(check, Trajectory, 'rows'); %find which row of check are in Trajectory and which row they match
trajcount = accumarray(where(intraj), 1, [size(Trajectory, 1), 1]); %and compute the histogram of the rows found in Trajectory
position = Trajectory(trajcount == 1, :); %to get the rows that are only once in check
%or
position = Trajectory(trajcount <= 1, :); %to get the rows that are not in check or just once

More Answers (0)

Tags

No tags entered yet.

Products

Community Treasure Hunt

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

Start Hunting!