何千もの行を除いて、これに似たMatlabのマトリックスがあります。
A =
5 6 7 8
6 1 2 3
5 1 4 8
5 2 3 7
5 8 7 2
6 1 3 8
5 2 1 6
6 3 2 1
最初の列が '5' の 3 つのランダムな行と、最初の列が '6' の 3 つのランダムな行を持つマトリックスを取得したいと思います。したがって、この場合、出力マトリックスは次のようになります。
A =
5 6 7 8
6 1 2 3
5 2 3 7
6 1 3 8
5 2 1 6
6 3 2 1
行は、元の行列の最初の 3 つまたは最後の 3 つだけではなく、ランダムでなければなりません。これを開始する方法がよくわからないので、どんな助けでも大歓迎です。
編集: これは、これまでで最も成功した試みです。最初の列に「5」があるすべての行を見つけました。
BLocation = find(A(:,1) == 5);
B = A(BLocation,:);
次に、次のように「randsample」を使用して、B から 3 つのランダムな行を見つけようとしました。
C = randsample(B,3);
しかし、'randsample' は行列では機能しません。
また、これはもう少し効率的に行うことができると思います。