To get a random number
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
Hi,
Am having a incremental column matrix like, e.g. for 1st iteration, it is 100*1(double), then for 2nd iteration iteration, it will be 100*2(double), etc.. Form this, for 1st iteration, i need to get a random no (single data only). from 1st column of matrix and for 2nd iteration, i have to get a random no. from 2nd column of matrix only.
Thank you in advance!!@!!
1 个评论
Michael
2012-1-18
Maybe I misunderstand but to me this question appears contradictory. How is a number random if it depends on your column as an input?
回答(1 个)
Wayne King
2012-1-18
You can use
x = randperm(100);
randomindex = x(1);
Then, use that index to choose an element from the appropriate column, say your data matrix is X
X(randomindex,1) %choose from first column
X(randomindex,2) %choose from 2nd column
7 个评论
Muruganandham Subramanian
2012-1-18
Wayne King
2012-1-18
How can you have negative indices in your vectors? that's not possible.
Muruganandham Subramanian
2012-1-19
Walter Roberson
2012-1-19
The range of your data matrix X does not affect the use of Wayne's suggested code.
However, to clarify his code a little:
rchoices = randperm(size(X,2));
randfirst = X(rchoices(1),1);
rchoices = randperm(size(X,2));
randsecond = X(rchoices(1),2);
Repeating the randperm() is required if you want it to be possible for the same row to be chosen for both columns. If the same row must _not_ be chosen for the columns, then
rchoices = randperm(size(X,2));
randfirst = X(rchoices(1),1);
randsecond = X(rchoices(2),2);
Muruganandham Subramanian
2012-1-20
Walter Roberson
2012-1-20
Sorry, the references to size(X,2) should have been size(X,1)
rchoices = randperm(size(X,1));
randchoice = X(rchoices(1),IterationNumber);
Muruganandham Subramanian
2012-1-20
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!