任意の値を除いたランダム値を生成したい

10 ビュー (過去 30 日間)
Sho Ikeda
Sho Ikeda 2020 年 11 月 22 日
回答済み: Shunichi Kusano 2020 年 11 月 22 日
任意の値を除いたランダム値を生成したいです。
たとえば1~10のうちから「2」以外の値を5つランダムに抽出する場合
どのようにコードを作ればよろしいでしょうか

回答 (1 件)

Shunichi Kusano
Shunichi Kusano 2020 年 11 月 22 日
idx = randi(9,[100,1]); % これはインデックス 1-10の中で2だけ除くので、マックスは9
histogram(idx) % 確認のため
targets = [1 3 4 5 6 7 8 9 10]; % 生成したい数1-10のなかで2だけを除く
randIdx = targets(idx);
histogram(randIdx) % 確認のため
こんなかんじでできるかと思います。
もし、targetsがもっと長いベクトルの場合(例えば1-100までの間で50だけ除きたい、など)、上記のように手打ちで入力するのは面倒なので、setdiff関数をお使いください。

カテゴリ

Help Center および File Exchange乱数発生器 についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!