SimulinkでのLoop処理方法に関して
27 views (last 30 days)
Show older comments
お世話になっております。
SimulinkでのLoop処理方法について教えてください。
Simulinkにて下記の様な構造体配列変数(Data Table)の”N”をLoopにて変更し、これらのData Tableを用いて
LookUpを一括処理にて行いたいと考えています。
Data例:Table.Type(N).Val
教えて頂きたいこと
1.Loop処理で、反復回数(1~n)を”N”に反映する方法。
1.どのようなLoop処理を構築すればよいか。
以上です。よろしくお願いいたします。
0 Comments
Answers (2)
Toshinobu Shintai
on 12 Feb 2022
ループ処理に関しては、For Iterator Subsystem を用いることで実現できるかと思います。以下のリンク先をご参照ください。
構造体配列は Simulink では添付モデルのように MATLAB Function ブロックを用いて扱うことができます。モデルはR2021bで作成しています。モデル実行前に以下のコマンドを実行してください。
Table.Type(1).Val = 1;
Table.Type(2).Val = 2;
MATLAB Function ブロックの端子とデータの管理は以下のようにしています。
4 Comments
Atsushi Ueno
on 19 Feb 2022
この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
See Also
Categories
Find more on Simulink Function in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!