Effacer les filtres
Effacer les filtres

How to allow a single overlap during chain growth?

1 vue (au cours des 30 derniers jours)
Soma
Soma le 3 Nov 2019
Modifié(e) : Soma le 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 commentaires
Guillaume
Guillaume le 3 Nov 2019
Can there be any duplicate row in Trajectory?
Soma
Soma le 3 Nov 2019
No, Trajectory should be always unique. The duplication should be in check only.

Connectez-vous pour commenter.

Réponse acceptée

Guillaume
Guillaume le 3 Nov 2019
Modifié(e) : Guillaume le 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
  1 commentaire
Soma
Soma le 3 Nov 2019
Amazing!! Thank you so much!!

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Aucun tag saisi pour le moment.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by