To pick a number randomly
1 回表示 (過去 30 日間)
古いコメントを表示
Can some one help in picking a number from a matrix for example i have matrix of the form A=[1 2 3 4 5; 6 6 7 5 8 ; 12 4 5 6 9] and i require to pick only one element randomly from the matrix but should not be the same element every time.
0 件のコメント
採用された回答
Andrei Bobrov
2012 年 9 月 11 日
編集済み: Andrei Bobrov
2012 年 9 月 11 日
try this is code
A=[1 2 3 4 5; 6 6 7 5 8 ; 12 4 5 6 9];
a = unique(A);
b = a(histc(A(:),a) < 2);
idx = randperm(numel(b));
out = b(idx(1));
その他の回答 (1 件)
Rene
2012 年 9 月 11 日
編集済み: Rene
2012 年 9 月 11 日
The answer of andrei does not give a truly random number since he uses the unique command.
This will:
A=[1 2 3 4 5; 6 6 7 5 8 ; 12 4 5 6 9];
B = round((length(A(:))-1)*rand+1);
A(B)
ps. as far as rand returns a truly random number
2 件のコメント
Andrei Bobrov
2012 年 9 月 12 日
編集済み: Andrei Bobrov
2012 年 9 月 12 日
A2 = reshape(A',[],1);
out = A2(randperm(numel(A),1));
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!