How to allow a single overlap during chain growth?

3 Ansichten (letzte 30 Tage)
Soma
Soma am 3 Nov. 2019
Bearbeitet: Soma am 3 Nov. 2019
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 Kommentare
Guillaume
Guillaume am 3 Nov. 2019
Can there be any duplicate row in Trajectory?
Soma
Soma am 3 Nov. 2019
No, Trajectory should be always unique. The duplication should be in check only.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Guillaume
Guillaume am 3 Nov. 2019
Bearbeitet: Guillaume am 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

Weitere Antworten (0)

Tags

Noch keine Tags eingegeben.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by