フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

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

1 回表示 (過去 30 日間)
maha ismail
maha ismail 2015 年 2 月 10 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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 件のコメント
Adam
Adam 2015 年 2 月 10 日
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.

回答 (2 件)

Star Strider
Star Strider 2015 年 2 月 10 日
‘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 件のコメント
Star Strider
Star Strider 2015 年 2 月 10 日
@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
Star Strider 2015 年 2 月 10 日
@maha ismail — If you don’t have randperm, use Matt Fig’s File Exchange contribution COMBINATOR.

Adam
Adam 2015 年 2 月 10 日
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 件のコメント
maha ismail
maha ismail 2015 年 2 月 10 日
my matlab is version 6.5 doesn't not have randi or randperm instructions ..I have only rand code can you rewrite the same program but with rand instruction?
Adam
Adam 2015 年 2 月 10 日
replace:
randi( count )
with
round( rand( count ) * n )
and I think that should give you the correct answer.

この質問は閉じられています。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by