質問: 遺伝的アルゴリズムを回すために、simulinkにおいてローカル関数から全体のシミュレーションを回したい。 タイトルの通りです。 simulinkにおいて、下記画像1つ目のようなモデルを組みました。 そして、このモデルに対して遺伝的アルゴリズムを行おうとしています。具体的には、gaというmatlabファイル内にて定義されているevaluation という名前のローカル関数を回すたびに、この下記画像1つ目のpath_planにevaluationから値を渡し、シミュレーションを最後まで回して、いくつかのデータを収集するという操作を行いたいと考えています。シミュレーションが終わったあとは、evaluationに戻り、再びpath_planにevaluationから変数を渡す ということを任意回繰り返します。(下記画像2つ目はgaとpath_planの画像です。) しかし以下のような問題が発生しました。 1evaluationを回すたびに、他のmatlabファイルに変数を渡す方法が分からない。 2evaluationを回すたびに、他のmatlabファイルに変数を渡したとしても、またgaというmatlabファイルに戻る方法が分からない。 コードの中身は事情によりお見せ出来ません。 もし解決策がある方がいらっしゃればご教授いただければ幸いです。
回答: evaluation関数をsimulinkのmatlab function ブロック上ではなくmatlab上で実行すれば: 1evaluationを回すたびに、他のmatlabファイルに変数を渡す方法が分からない。 ⇒他のmatlabファイルに変数を渡す事が出来る 2evaluationを回すたびに、他のmatlabファイルに変数を渡したとしても、またgaというmatlabファイルに戻る方法が分からない。 ⇒sim関数経由でsimulinkモデルの実行が終わればevaluation関数の実行に戻る 上記の考え方が一つの方法です。