MATLAB functionブロックを使用する際にワークスペースに定義されている値を使用したい
44 views (last 30 days)
Show older comments
MATLAB functionブロックを使用する際に、先にワークスペースで定義している変数を使いたいのですが方法はないでしょうか。
また、MATLAB functionに書き込むプログラムは.mファイルで作成したプログラムをそのまま使うことはできないのでしょうか。
以上2点お願いいたします。
0 Comments
Accepted Answer
Musashi Ito
on 7 Dec 2019
MATLAB Function ブロックでワークスペースの変数を使用する場合は、MATLAB Function ブロックのエディタにある[データの編集] から指定の変数を [パラメータ] として追加すると使えそうですがいかがでしょうか。
ドキュメンテーションにも記載してあるみたいです。
また.m ファイルをそのまま使用する場合は、全部コピーして貼り付けするか、.m ファイルを関数化して、MALTAB Function ブロック内で関数として呼び出す方法はいかがでしょうか。
0 Comments
More Answers (1)
s
on 8 Dec 2019
Edited: s
on 8 Dec 2019
2 Comments
Musashi Ito
on 8 Dec 2019
MATLAB Function ブロックの for 文の中で変数のサイズが変化するプログラムの場合は、for 文の前に変数のサイズを定義しておく必要がありそうです。yd1 のベクトルが for 文で計算される前に、事前にzeros などの関数でサイズを定義してみてはいかがでしょうか。
yd1 = zeros(1,length(xd));
同じようにTd, Vr, Tr も事前にサイズを定義する必要がありそうです。
MATLAB の関数で出力する変数が複数ある場合は、[ ] を使って記述するみたいです。
function [a,b,c,d] = fcn(u, g, ms, x2, T, d)
関数の書き方は下記のドキュメンテーションが参考になりそうです。
See Also
Categories
Find more on Simulink Function in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!