help n=12 for I=1:n p(I) =rand p(I) =28×p(I) p(I)=ceil(p(I)) end I need to put constraint on this code must be theres no redanandnt values ..so if n=28 p will be all the numbers from 1:28 but in random
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
n=12
for I=1:n
p(I) =rand
p(I) =28×p(I)
p(I)=ceil(p(I))
end
I need to put constraint on this code must be theres no redanandnt values ..so if n=28 p will be all the numbers from 1:28 but in random
1 commentaire
Adam
le 10 Fév 2015
Please keep code in the body of the question not in the title. The title should be a short description of the problem.
Also please use the {} Code block to include formatted code.
Réponses (2)
Star Strider
le 10 Fév 2015
‘I need to put constraint on this code must be theres no redanandnt values ..so if n=28 p will be all the numbers from 1:28 but in random’
The easiest way is to use the randperm function:
n = 12;
p = randperm(n);
5 commentaires
maha ismail
le 10 Fév 2015
Adam
le 10 Fév 2015
Ah yes, I thought there must be some builtin way of doing this, but I just couldn't remember it!!
Adam
le 10 Fév 2015
randperm( 28, 12 )
would be what you would need to get 12 distinct values between 1 and 28.
Star Strider
le 10 Fév 2015
@Adam — Thank you for your Comment!
Our friendly randperm appears frequently in Answers. That’s how I learned about it, since I don’t otherwise need to use it that often.
Star Strider
le 10 Fév 2015
Adam
le 10 Fév 2015
Something like this would work:
nums = 1:28;
n = 28;
p = zeros(1,n);
count = numel( nums );
for i = 1:n
idx = randi(count);
p(i) = nums( idx );
nums( idx ) = [];
count = count - 1;
end
Not necessarily the most efficient way of doing it, but it will guarantee uniqueness so long as n is at most 28 (or whatever value you set as the maximum of nums.
2 commentaires
maha ismail
le 10 Fév 2015
Adam
le 10 Fév 2015
replace:
randi( count )
with
round( rand( count ) * n )
and I think that should give you the correct answer.
Cette question est clôturée.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!