0

シミュレーション中にテーブルまたはマトリックス形式でデータを保存することは可能ですか? 内部に機能ブロックが組み込まれた有効なサブシステムを作成しました。サブシステムが有効になるたびに (条件が満たされた場合)、A と B という 2 つの値が埋め込みの matlab 関数に入力されます。A を (1,1) に、B を (1,2) にそれぞれ格納する必要があります。システムが再び有効になった場合は、新しい A と B を (2,1) と (2,2) に格納する必要があります。それぞれ。要するに、私が必要とするのは

AB

New_A New_B

再び_新しい_A 再び_新しい_B

....

私が直面している問題は次のとおりです。

1) 行列を mat = zeros(10,2); に割り当てる必要があります。使用する前に。サブシステムが初めて有効になると、mat(i,1) = A; を使用して A と B が 1 列目と 2 列目に入力されます。マット (私は、2) = B;

実行中にシステムが 2 回目に有効になると、以前に保存された A と B の値が消去され、ゼロにリセットされます。

最初の有効化:

AB

0 0

0 0

...

2 番目の有効化:

0 0

New_A New_B

0 0

...

以前に保存された値がリセットされます。

2) mat を mat = [] として設定することはできません。マットを空の値に初期化できないというエラーがスローされるためです。

3) マトリックスの最後に新しい行を追加しようとしましたが、定義済みの次元を超えるというエラーが再びスローされます。

私が期待しているものを得る方法があれば教えてください。

ありがとう - シュルティ

4

1 に答える 1

0

MATLAB Function ブロックの異なるタイム ステップ間でデータを保存するには、次のパターンを使用する必要があります。

persistent mat
if isempty(mat)
  mat = zeros(10,2);
  cnt = 1; % Counter to count number of times enabled
end

if cnt <= 10
  mat(cnt,1) = A;
  mat(cnt,2) = B;
end
cnt = cnt + 1;

永続属性を使用すると、異なる呼び出し間でデータを保存できます。

于 2013-04-19T14:39:58.547 に答える