MATLAB で行列からランダムな行を選択する方法
MATLAB には、行列からランダムな行を選択できるメソッドがいくつかあります。ここでは、行列からランダムな行を選択する次の方法について説明します。
方法 1: randperm 関数を使用する
randperm 関数は、1 から n までの数値のリストをランダムな順序で生成します。これらの数値は行ベクトルとして編成されます。この関数を使用してランダムな行インデックスを生成し、それらのインデックスを使用して行列から行を選択できます。
例
以下の MATLAB コードは、行列 A から 2 つのランダムな行を選択します。
A = ランド ( 10 、 5 )
% 行インデックスのランダムな並べ替えを生成します。
idx = ビーチパーマ ( サイズ ( あ、 1 ) ) ;
% Aのランダムな2行を選択
B = A ( いど ( 1 : 2 ) 、 : )
方法 2: randsample 関数を使用する
randsample 関数は、指定された配列から要素のランダムなサンプルを生成します。行列からランダムな行を選択するには、関数 randsample を rows オプションとともに使用します。
この関数を使用してランダムな行インデックスを生成し、それらのインデックスを使用して行列から行を選択できます。
例
以下の MATLAB コードは、行列 A から 2 つのランダムな行を選択します。
A = ランド ( 10 、 5 )
% ランダムな行インデックスを生成し、ランダムな行を選択します
idx = ランドサンプル ( サイズ ( あ、 1 ) 、 2 ) ;
B = A ( idx、: )
方法 3: datasample 関数を使用する
datasample 関数は、入力データ セットからデータのランダム サンプルを返します。この関数を使用すると、行列からランダムな行を直接選択できます。 datasample 関数は、randsample 関数のより高度なバージョンです。
例
以下の MATLAB コードは、行列 A から 3 つのランダムな行を選択します。
% 5x3 行列を作成するA = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 、 十一 、 12 ; 13 、 14 、 15 ]
% ランダムな行を選択します
ランダム行 = データサンプル ( あ、 3 )
方法 4: randi() 関数を使用する
randi() 関数は、指定された範囲からランダムな整数を生成できる MATLAB 関数です。行列からランダムな行を選択するコンテキストでは、randi() 関数を使用してランダムな行インデックスを生成できます。
構文
randi() 関数の構文は次のとおりです。
ランディ ( n )ここで、n はランダムな整数が生成される範囲の上限を表します。 randi() は 1 から n までのランダムな整数を返します。
例
以下は、randi() 関数を使用して行列から 2 つのランダムな行を選択する方法を示す簡単な MATLAB サンプル コードです。
% 3x3 の魔方陣を作成しますマジックスクエア = 魔法 ( 3 )
% randi() を使用して 2 つのランダムな行インデックスを生成します
randyRow1 = ランディ ( 3 ) ;
ランダム行2 = ランディ ( 3 ) ;
% 魔方陣からランダムな行を選択します
selectedRows = マジックスクエア ( [ ランダム行1、ランダム行2 ] 、 : ) ;
% 選択した行を表示します
ディスプ ( 「選択された行:」 ) ;
ディスプ ( 選択された行 ) ;
この例では、magic() 関数を使用して 3×3 の魔方陣を作成します。次に、魔方陣には 3 行あるため、randi(3) を使用して 2 つのランダムな行インデックスを生成します。最後に、生成されたインデックスを使用して魔方陣からランダムな行を選択し、結果を表示します。
結論
この記事では、行列からランダムな行を選択する方法について説明します。この記事では、行列のランダムな行を選択する 3 つの関数、randperm()、randsample()、datasample()、および randi() 関数について説明します。これら 3 つの方法はすべて、定義された行列からランダムな行を生成できます。生成される行の数は、これらの関数の引数内で渡した数によって異なります。この記事では、MATLAB でランダムな行を生成するためのこれらすべての関数についてお読みください。