Main Content

cgsl_0202: ベクトル信号のある For、While、および For Each Subsystem の使用方法

ID: タイトルcgsl_0202: ベクトル信号のある For、While、および For Each Subsystem の使用方法
説明コード生成のためにモデルを開発する場合、以下に従ってください。
A反復動作が必要な計算や、データのサブセット (フレーム) に行う計算には、For、While、および For Each Subsystem を使用する。
B基本的なベクトル演算には For、While、For Each Subsystem を使用しない。
根拠A、B冗長ループを回避する。
参考
最終更新R2010b

前の計算には、Gain ブロックを For Subsystem の外に配置する方法が推奨されます。大きいアルゴリズムの一部として計算が必要な場合は、Index Vector ブロックと Assignment ブロックを使用すると for ループの入れ子を回避できます。

推奨

for (s1_iter = 0; s1_iter < 10; s1_iter++) {
  RecommendedOut[s1_iter] = 2.3 * vectorInput[s1_iter];
}

よくある間違いは、基本的なベクトル演算を For、While、または For Each Subsystem に組み込むことです。次の例では、For Subsystem 内に簡単なベクトル ゲインを含めた結果、不要な入れ子の for ループが発生します。

非推奨

for (s1_iter = 0; s1_iter < 10; s1_iter++) {
  for (i = 0; i < 10; i++) {
    NotRecommendedOut[i] = 2.3 * vectorInput[i];
  }
}