0

他の 2 つのベクトルの無作為抽出で構成されるベクトルを作成するにはどうすればよいでしょうか?

例えば

ベクター 1 [1、3、4、7]、ベクター 2 [2、5、6、8] ランダム ベクター [ベクター 1 または 2 (値 1 または 2) からランダムに描画、ベクター 1 または 2 からランダムに描画 (値 3)または5)...など]

最後に、このプロセスを n 回繰り返して結果の分布を描画するように matlab に指示するにはどうすればよいでしょうか?

ありがとうございました、

4

5 に答える 5

0

1 つの混合サンプルを取得するには、次のコード スニペットのアイデアを使用できます (最適なものではありませんが、十分に明確である可能性があります)。

a        = [1, 3, 4, 7];
b        = [2, 5, 6, 8];
selector = randn(size(a));
sample   = a.*(selector>0) + b.*(selector<=0);

nサンプルについては、上記のコードをforループに入れます。

for k=1:n
    % Sample code (without initial "samplee" assignments)
    % Here do stuff with the sample
end;
于 2013-04-15T20:41:04.030 に答える
0

より一般的には、X が行列で、ランダムに選択された列からサンプルを取得する行ごとに、ループを使用してこれを行うことができます。

y = zeros(size(X,1),1);
for ii = 1:size(X,1)
    y(ii) = X(ii,ceil(rand*size(X,2)));
end

sub2ind による巧妙なインデックス付けを使用して、ループを回避できます。

idx_n = ceil(rand(size(X,1),1)*size(X,2));
idx   = sub2ind(size(X),(1:size(X,1))',idx_n);
y = X(idx);
于 2013-04-15T20:51:18.173 に答える