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!