Remove duplicates from array for landmark sequence generation

3 views (last 30 days)
Hi,
Say I had an array:
x
I have 6 landmarks and I want to generate different path ways so I travel each landmarks once;
For example;
I want x to look like;
x = [1 2 3 4 5 6] or x = [1 3 2 5 4 6] or x = [1 5 4 2 3 6] without any repetition of landmarks.
However 1 is the starting landmark and 6 is the end landmark. I want these to stay as it is. The landmarks between are generated using randperm(6). How do generate an array like this?
Thanks

Answers (1)

Henric Rydén
Henric Rydén on 2 Jun 2014
perms(x(2:end-1))
gives you all paths. Add ones and sixes with
[repmat(1,factorial(4),1) perms(x(2:end-1)) repmat(6,factorial(4),1)]
  2 Comments
Isuru
Isuru on 2 Jun 2014
Thanks for the reply. This still gives me repeated landmark values. So I only want to visit each landmark once from start to end and can't visit one place twice. Is there another way around this?
Henric Rydén
Henric Rydén on 2 Jun 2014
What do you mean by "repeated landmark values"? All rows in the output contains 1-6 and are never repeated.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!