「nchoosek」関数で、配列番号を取得する方法
16 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
matlabでは組み合わせとして、「nchoosek」関数があります。
以下のような場合、解決する方法があれば、教えていただけると幸いです。
例えば、以下のような同じ配列数の変数「A」と「B」があるとします。
A = [3 4 5 6];
B = [13 14 15 16];
この変数は同じ配列数でそれぞれの同じ配列番号の値が対応しています。
つまり、A(1)とB(1)、A(2)とB(2)、…、A(4)とB(4)はセットで今後扱いたいです。
しかし、「nchoosek」関数は返り値に、インデックス(配列番号)を返せないため、変数Aの組み合わせの結果に対応した変数Bの結果を取得できません。
Acon = nchoosek(A,2) % 変数「A」の中から2つ選ぶ場合の組み合わせ
この変数Aconに(3,5)という組み合わせの結果がきた時、同じ配列番号の変数Bも取得したいです。
つまり、(13,15)も欲しいということです。
何かいい方法がありましたら、教えていただけますと助かります。
よろしくお願い申し上げます。
0 commentaires
Réponse acceptée
交感神経優位なあかべぇ
le 17 Juil 2023
nchoosekの引数1にインデックスを渡せばよいのではと思います。
A = [3 4 5 6];
B = [13 14 15 16];
idx = 1 : length(A);% インデックスの作成
sek_idx = nchoosek(idx,2);% インデックスから2つ選択
sek_A = A(sek_idx)% Aへ選択インデックスの当てはめ
sek_B = B(sek_idx)% Bへ選択インデックスの当てはめ
sek_A_3_5_idx = all(sek_A == [3,5], 2); % 3,5と一致する行を検索
sek_B(sek_A_3_5_idx, :)% Aの3,5と同じ行のBを表示
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!