MATLAB Answers

s
0

Simulinkでのforループについて

Asked by s
on 3 Oct 2018
Latest activity Commented on by s
on 19 Oct 2018
Simulink内でforループを作成したいのですがs-functionブロックを使わずにif,else文が含まれたロジックを組むことは可能でしょうか。 cソースコードだと (例) for(i = 0; i <= a; i++){ 文1;
for(j = 0; j <= b; j++){
2;
if (uu[1] == 1 && p[i][j] < L){
3;
}else{
4;
}
}
J[i] = 5;
if(i != 0){
if(条件){
bunn6
}
}
}

  0 Comments

Sign in to comment.

Products


Release

R2016b

2 Answers

Naoya
Answer by Naoya
on 9 Oct 2018

S-Function 以外で今回の様な forや if 文が含まれるようなフローをSimulinkへ実現する方法としては、 MATLAB Functionブロック が便利です。
MATLAB Functionブロックは、 MATLAB 言語ベースでSimulinkのブロックを実現することができます。頂いたコードフローを直観的にMATLAB 言語ベースで実現できます。

  0 Comments

Sign in to comment.


Shoumei
Answer by Shoumei
on 19 Oct 2018

ForループやIf/Elseの中にどんな処理が入っているかにもよりますが、ブロックで書きたければSimulink/Ports & Subsystem/For Iterator SubsystemブロックやFor Each Subsystemブロックと分岐処理にSwitchブロックの組み合わせでもできそうです。

  1 Comment

s
on 19 Oct 2018
①S-function内でのパラメータはコンスタントブロックを使用して定義すればいいでしょうか。
②forループの中にforループやifループがある場合は、For 各 SubsystemブロックのなかにさらにFor 各 Subsystemブロックを使えばよいでしょか。
③変数の定義で配列が含まれていて、それをforループの中で計算に使用する場合はどのように組み込みますか? (たとえば) int i = 0; int j = 0; double X[15][10]; a=5; for(j = 0; j <= a; j++){ t = to[0]*j; X[i][j] = L - 2.0; Z=X[i][j]*5 のように

Sign in to comment.