MATLAB: Selecting the random element by having distance to others

selecting the random element by having distance to others

This code generates random number
index = randperm(length(1:200),5);
I want to control this generator. Each number have a distance to each others
for example
index=[117 121 15 14 187]
117 and 121 is near to each other also 14 amd 15. This example is not acceptable.
200 divided by 5 equals 40.
First element should be between 1 to 40
Second elemnet should be between 41 to 80
Third elemnet should be between 81 to 120
4th —> 121 to 160
5th —> 161 to 200
If the fist element is 39 the second one should not be 42. 39 and 42 is close to each other.
something like this result
index=[2 53 90 140 199]

Best Answer

  • If you want your random numbers to be distributed like this, the randperm is not the correct function. You can use randi() and shift them to your required range.
    x = randi([1 40], 1, 5) + (0:40:160);
    Result
    >> x
    x =
    27 42 114 158 188