MATLAB Function(Simulink / User-Defined Functions)のエディタでmファイルで定義した変数を使いたいのですが
参照できないとのエラーが出ます。以下例の改善点のご指摘お願いします。
(例)
param.mの記述
a=1;
MATLAB Function(Simulink / User-Defined Functions)の記述
function y= fcn(arg1)
y = a+arg1;
この状態でSimulinkのシミュレーションを開始すると
aが参照できないとのエラーが出ます。
ご存知の方、ご教示よろしくお願いします。

 採用された回答

Toshinobu Shintai
Toshinobu Shintai 2021 年 1 月 28 日

0 投票

まず、スクリプトに記載した変数は、MATLABのワークスペースに展開されなければ、Simulinkから参照することはできません。
一方で、param.mを「関数スクリプト」にした場合は、以下のようにすることで読むことができます。
param.mを以下のようにします。
function p = param()
p = struct;
p.a = 1;
end
SimulinkモデルのMATLAB functionでは、以下のようにします。
function y = fcn(u)
p = param;
y = p.a + u;
end
添付ファイルを確認してください。
また、MATLABワークスペースにある変数をMATLAB Functionで扱えるようにするには、以下のように、データの編集から新しい変数を作成し、
変数のスコープを「パラメータ」に変更し、変数名を「a」など、MATLABワークスペースの変数の同じ名前にします。

1 件のコメント

真之 毛利
真之 毛利 2021 年 2 月 1 日
回答いただきありがとうございました! 図付きで大変理解しやすかったです。 また何かあったときはよろしくお願いします!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で 対話型のモデル編集 についてさらに検索

製品

リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!