私は martix を持っていて、その要素をシャッフルしたいと思っています。
x=[1 2 5 4 6 ]
シャッフル後(こんな感じ)
x=[2 4 6 5 1]
matlabには機能がありますか? PHP array_shuffleでこれを行います。
私は martix を持っていて、その要素をシャッフルしたいと思っています。
x=[1 2 5 4 6 ]
シャッフル後(こんな感じ)
x=[2 4 6 5 1]
matlabには機能がありますか? PHP array_shuffleでこれを行います。
を使用してシャッフルされたインデックスを取得するrandperm
idx = randperm(length(x));
インデックスを使用してシャッフルされたベクトルを取得する
xperm = x(idx);
の代わりに、統計ツールボックスからrandperm
を使用することもできます。randsample
y = randsample(n,k)
から までの整数から置換なしで一様に無作為に抽出された値のベクトルをk
返します。1
y
1
n
「置換なし」(デフォルト)であることに注意してください。したがって、 を に設定すると、ベクトルのランダム シャッフルを実行するのと同じになりますk
。length(x)
例えば:
x = 1:5;
randsample(x,length(x))
%ans =
% 4 5 3 1 2
randperm
さまざまな用途に簡単に拡張できるので、これよりも気に入っています。たとえば、から 3 つの要素x
をランダムに描画するには (有限のアイテムを含むバケツから描画するように)、 を行いますrandsample(x,3)
。同様に、アルファベットが の要素で構成されている 3 つの数字を描きたいがx
、繰り返しを許可する場合は、 を行いますrandsample(x,3,true)
。