Info

This question is locked. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Making random to work like randi

조회 수: 5 (최근 30일)
Snoopy
Snoopy 2025년 8월 4일
Locked: Matt J 2025년 8월 4일
I have this code
idx = randi(N_clusters,N_clusters,1);
but I want to use the random function to achieve the same output. I do not get into why I want to use the random function but it is important for my work flow. So then I tried
pd = makedist('DiscreteUniform','Lower',1,'Upper',N_clusters);
idx = random(pd,N_clusters,1);
But MATLAB gives an error that "DiscreteUniform" is not recognized. What is my best alternative usinf the random function, if I stll can.

채택된 답변

Paul
Paul 2025년 8월 4일
I wonder why makedist doesn't support Uniform Distribution (Discrete).
But random can be called with that distribution.
N_clusters = 10;
rng('default');
idx = randi(N_clusters,N_clusters,1)
idx = 10×1
9 10 2 10 7 1 3 6 10 10
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
rng('default');
random('Discrete Uniform',N_clusters,N_clusters,1)
ans = 10×1
9 10 2 10 7 1 3 6 10 10
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
  댓글 수: 1
Snoopy
Snoopy 2025년 8월 4일
This
idx = random('Discrete Uniform',N_clusters,[N_clusters 1]);
seems to work. I wonder about the makedist too. This caused the whole confusion on my end.

추가 답변 (1개)

Matt J
Matt J 2025년 8월 4일
편집: Matt J 2025년 8월 4일
idx = floor( (N_clusters-1)*rand(N_clusters,1) )+1
  댓글 수: 11
Snoopy
Snoopy 2025년 8월 4일
Yes, that is the problem and hence I am seeking a solution to that, using still the random function.
Matt J
Matt J 2025년 8월 4일
편집: Matt J 2025년 8월 4일
AI suggested
But that's not what I suggested to you earlier. I suggested 'Uniform'
N_clusters = 10;
rng('default');
pd = makedist('Uniform','Lower',1,'Upper',N_clusters+1);
idx = floor(random(pd,N_clusters,1))
idx = 10×1
9 10 2 10 7 1 3 6 10 10
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>

This question is locked.

카테고리

Help CenterFile Exchange에서 Random Number Generation에 대해 자세히 알아보기

제품


릴리스

R2025a

Community Treasure Hunt

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

Start Hunting!

Translated by