How to generate random indicies?
Mostra commenti meno recenti
I would like to generate k different random indices from 1 to N. One solution is randperm(N,k), however I do not need to shuffle the indicies. Are there any other solution directly generating idicies in order?
Risposte (2)
Image Analyst
il 31 Gen 2015
Modificato: Image Analyst
il 31 Gen 2015
Yes, but if they're not "shuffled" then they're not random, are they? So you can get indices in ascending numerical order from 1 to N this way:
indices = 1 : N;
If you want what you said, but just sorted , then sort them:
pseudoRandomIndices = sort(randperm(N, k), 'ascend');
4 Commenti
Mr M.
il 31 Gen 2015
Star Strider
il 1 Feb 2015
You have to use the entire ‘pseudoRandomIndices’ assignment. It returns them in ascending order:
N = 10;
k = 3;
pseudoRandomIndices = sort(randperm(N, k), 'ascend')
returns:
pseudoRandomIndices =
2 6 8
Mr M.
il 1 Feb 2015
Image Analyst
il 1 Feb 2015
We're not sure which algorithm you're thinking of, sort or randperms, but feel free to rewrite either one with a less complicated version of them. We're not going to do that for you. Good luck.
This avoids sorting,
idx=false(1,N);
vals=1:N;
idx(randperm(N, k))=1;
result=vals(idx);
Categorie
Scopri di più su Programming in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!