SimulinkでのLoop処理方法に関して
27 ビュー (過去 30 日間)
古いコメントを表示
お世話になっております。
SimulinkでのLoop処理方法について教えてください。
Simulinkにて下記の様な構造体配列変数(Data Table)の”N”をLoopにて変更し、これらのData Tableを用いて
LookUpを一括処理にて行いたいと考えています。
Data例:Table.Type(N).Val
教えて頂きたいこと
1.Loop処理で、反復回数(1~n)を”N”に反映する方法。
1.どのようなLoop処理を構築すればよいか。
以上です。よろしくお願いいたします。
0 件のコメント
回答 (2 件)
Toshinobu Shintai
2022 年 2 月 12 日
ループ処理に関しては、For Iterator Subsystem を用いることで実現できるかと思います。以下のリンク先をご参照ください。
構造体配列は Simulink では添付モデルのように MATLAB Function ブロックを用いて扱うことができます。モデルはR2021bで作成しています。モデル実行前に以下のコマンドを実行してください。
Table.Type(1).Val = 1;
Table.Type(2).Val = 2;
MATLAB Function ブロックの端子とデータの管理は以下のようにしています。
4 件のコメント
Atsushi Ueno
2022 年 2 月 19 日
このQ&Aに始まった事ではありませんが、Simulink関連のQ&Aで添付モデルを開けない為に完全な回答を閲覧出来ない事は由々しき問題です。MATLAB Answerのライブスクリプト上でSimulinkモデルを開く事は出来ないですし、相手のMATLABバージョン以上のライセンスを所有していないとSimulinkモデルを開く事が出来ません。Q&Aの内容はあまねくMATLAB民が享受すべきではないのはないでしょうか。
結局どういう回答だったのでしょうか?添付モデルを見ないとわかりません。忍法「バージョンが新しいモデルが開けなくても拡張子slxをzipに変えて解凍すればある程度中身が見える」を使ってモデルを閲覧しましたが、添付モデルの内容はこういう事でしょうか?MATLAB functionブロックの引数の数が異なるので恐らく正しいモデルの姿を見る事が出来ていないのだと思います。
function y = fcn(Table, index)
y = Table.Type(index).Val;
end
参考
カテゴリ
Help Center および File Exchange で Simulink Function についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!