
行列ベクトルの入力データをstateflowに読み込ませる方法
조회 수: 1 (최근 30일)
표시 이전 댓글
シリアル通信でデータサイズ[1 24](int16)のデータをstateflowを用いて条件分岐したいのですが、行列またはベクトルが不適切に使用されているというエラーが出てしまいます。
その後、プロパティインスペクターで入出力データのサイズと型を[1 24](int16)に設定して再度実行しましたが、データサイズの不一致というエラーが出てしまいます。
stateflowに行列データを読み込む時は一旦スカラーに変換しなければならないのでしょうか。
何か解決策等教えていただければ幸いです。
댓글 수: 0
채택된 답변
Toshinobu Shintai
2022년 5월 31일
Stateflowの遷移の条件判定式の出力が、スカラーなければならないためにエラーとなります。
例えば以下のようにコードを書いて実行してみると分かりますが、
y = ones(1, 24);
y < 2000
比較演算子"<"は、ベクトルの各数値に対して実行され、出力はベクトルになります。
例えば以下のように判定式がスカラーになるようにすればエラーは発生しなくなると思います。

参考までに、モデルも添付します。R2021aで作成しました。
댓글 수: 0
추가 답변 (2개)
kazuya h
2022년 5월 31일
댓글 수: 2
Toshinobu Shintai
2022년 5월 31일
すみません、追記ですが、「For Each Subsystem」を使うともう少し効率よくモデル化できます。Test_model_2.slxの「state_vector」サブシステムをFor Eachにすることで、ブロックを沢山並べなくてもモデル化できます。
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!