hai i need a command for following details........

1 回表示 (過去 30 日間)
VIJAY
VIJAY 2017 年 12 月 11 日
編集済み: Jan 2017 年 12 月 11 日
Here i am using the following command
as
>> randperm(12,4)
>> 1 3 8 12
In above command the maximum value is 12 for this command.
How can i set the the limit of randperm command ie the result should be as the range of 2 to 12???????????
the answer may be as
>>2 5 6 7........

採用された回答

Birdman
Birdman 2017 年 12 月 11 日
One approach:
while true
a=randperm(12,4)
if max(a)>7
else
break;
end
end
  4 件のコメント
KL
KL 2017 年 12 月 11 日
Unfortunately no...
Yes, there is. Check my answer.
Jan
Jan 2017 年 12 月 11 日
編集済み: Jan 2017 年 12 月 11 日
Why complicated if it can be written simpler? Compare:
if max(a) > 7
else
break;
end
with
if max(a) <= 7
break;
end
But the original question does not contain a limit like max(a) <= 7, but "the range of 2 to 12".

サインインしてコメントする。

その他の回答 (2 件)

KL
KL 2017 年 12 月 11 日
Simpler:
Use randsample
randsample(2:12,4)
ans =
9 3 4 2
  9 件のコメント
VIJAY
VIJAY 2017 年 12 月 11 日
Thank you........
Jan
Jan 2017 年 12 月 11 日
@Birdman: I do not see any limit of 7 for the values in the question also. "Values from 2 to 12 with maximum 7" is not even meaningful, but this would be "values from 2 to 7".

サインインしてコメントする。


Walter Roberson
Walter Roberson 2017 年 12 月 11 日
"s it possible to create an array by using this command(randsample(2:12,4)) for example the array size is 7*4 etc etc...???????"
[~,temp] = sort(rand(7, 11), 2);
result = 1 + temp(:,1:4));
The range 2 to 12 is achieved by taking the range 1 to 11 and adding 1 to that.
The random ordering is done by sorting random numbers by rows. This method of sort() is what randperm it self used to use.
  1 件のコメント
Jan
Jan 2017 年 12 月 11 日
randperm uses the sorting of a random vector only, if it is called with 1 input. For 2 inputs I assume the faster Fisher-Yates-Shuffle is applied (at least randperm(n,n) is much faster than randperm(n) - enhancement request was sent already).
Nevertheless, randperm(11, 4) + 1 is an easy solution also, but must be called in a loop.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by