組み合わせを用いて、関数を動かしたい。

5 views (last 30 days)
Ryusuke
Ryusuke on 16 Jan 2023
Commented: Ryusuke on 17 Jan 2023
こんにちは。プログラミング初心者です。題にあるように、matlabで組み合わせを用いて関数を動かしたいのですが、やり方がわかりません。
具体的に言うと、今現在、listでフォルダ内のファイルを読み込む所まではできました。そこでfor文等を使って、繰り返し計算を行いたいのですが、フォルダ内のファイル(csv)の全ての中から3つを選んで計算し、全ての組み合わせを網羅したいと思っています。
計算に用いたファイル名(分かれば良い)と、計算結果を行列等にしてプロットしたいと思っています。
力を貸してください。よろしくお願いします。

Accepted Answer

Shunichi Kusano
Shunichi Kusano on 16 Jan 2023
こんにちは。
リストはもうできているということなので、nchoosek関数が使えると思います。例えば
C = nchoosek([1:5],3)
で、1から5までの数から3つを取り出す組合せを全て列挙してくれます。ですのでリストしたファイルの総数をNとすると
C = nchoosek([1:N],3)
で、組合せが全て得られます。
あとはforループでその組み合わせ分だけ回せばいいので
for combi = 1:size(C,1)
fileIDs = C(combi,:); % このループの組合せ
file1 = filelist(fileIDs(1)); % ファイル名をリスト化しておき、該当するIDのファイル名を取得
file2 = filelist(fileIDs(2));
file3 = filelist(fileIDs(3));
% ファイルの読込み
XXX
% 処理
YYY
% 結果の保存
ZZZ
end
みたいな感じで書けばいいかと思います。
  1 Comment
Ryusuke
Ryusuke on 17 Jan 2023
回答ありがとうございます!頑張ってみます!!

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!