Suppose I have a binary vector B of size n. I'd like to randomly pick the indices with value 1. How would one go about doing this?

 採用された回答

Sean de Wolski
Sean de Wolski 2012 年 5 月 11 日

0 投票

idx1 = find(A==1);
idxkeep = randperm(numel(idx1),how_many_you_want);
idx12keep = idx1(idxkeep);

1 件のコメント

Walter Roberson
Walter Roberson 2012 年 5 月 11 日
Note: this requires R2011b or later (I think it is). Before that,
idx1 find(A==1);
idxkeep = randperm(numel(idx1));
idx12keep = idx1(idxkeep(1:how_many_you_want));

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Random Number Generation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by