2016-11-23 3 views
0

私は関数を実行しているSimulinkモデルを持っていますが、ブロック内のすべての値は関数内でassignin()関数を使用して割り当てられています。シミュレーション後にワークスペースに自動的に保存されます(シミュレーション結果をベクトルに格納する 'To Workspace'ブロックを使用しています)、この関数を使用してシミュレーションした直後にこのデータを取得します。私はevalin()を使用してワークスペースからデータを取得しましたが、変数が定義されていないとは思われません。いくつかのデータをシミュレートした後に変数を取得する

+0

'assignin'を使って(あなたの関数内から)データをベースワークスペースに割り当てる必要はありません。代わりに[sim](https://www.mathworks.com/help/simulink/slref/sim.html)関数への 'SrcWorkspace'オプション入力を使用してください。 –

+0

上記のコメントはより明示的で、あなたの関数内で変数をローカルに定義し、 'SrcWorkspace'オプションを使用してモデルが' caller'ワークスペースから必要なデータを取得するように指定できますデフォルト) 'base'ワークスペースです。 –

答えて

0

データをシミュレートする前に、出力は、第1、その後、私はこれもと連携葛は、シミュレーションの対象

FT = FO.get('FT'); 

から記録された先のデータ変数を取得することができ、その後のオブジェクトとして

FO =sim(filename,time); 

を変数にシミュレーション出力を割り当てます'To workspace'ブロックとは異なる関数で

+0

'sim'を使う前にモデルを手動で変更してシグナルロギングを有効にする必要はありません。代わりに[sim](https://www.mathworks.com/help/simulink/slref/sim.html)関数の 'SignalLogging'オプション入力を使用してください。 'sim'文書の最初の例はこれを行う方法を示しています。 –

関連する問題