System object でのグローバル変数の使用
グローバル変数は、他の MATLAB® 関数または Simulink® ブロックでアクセスできる変数です。
MATLAB の System object のグローバル変数
MATLAB のみで使用される System object の場合、他の MATLAB コードでグローバル変数を定義するときと同じ方法で System object™ クラス定義ファイルでグローバル変数を定義します (グローバル変数を参照)。
Simulink の System object のグローバル変数
Simulink の MATLAB System ブロックで使用される System object の場合、MATLAB で定義するのと同様にグローバル変数を定義します。ただし、stepImpl
、updateImpl
または outputImpl
によってそれぞれ呼び出されるメソッドでグローバル変数を宣言している場合に、Simulink でそれらのグローバル変数を使用するには、グローバル変数を stepImpl
メソッド、updateImpl
メソッドまたは outputImpl
メソッドで宣言しなければなりません。
MATLAB System ブロックのグローバル変数を、MATLAB Function ブロックと同じ方法でセットアップして使用します (データ ストア (Simulink)およびMATLAB Function ブロックでのグローバル データの使用 (Simulink)を参照)。MATLAB Function ブロックと同様に、Simulink でグローバル変数を使用するには Data Store Memory ブロックと一致する変数名も使用しなければなりません。
たとえば、このクラス定義ファイルは、各タイム ステップで行列の最初の行を 1 ずつインクリメントする System object を定義します。クラス ファイルが P コードである場合は getGlobalNamesImpl
を含めなければなりません。
classdef GlobalSysObjMatrix < matlab.System methods (Access = protected) function y = stepImpl(obj) global B; B(1,:) = B(1,:)+1; y = B; end % Include getGlobalNamesImpl only if the class file is P-coded. function globalNames = getGlobalNamesImpl(~) globalNames = {"B"}; end end end
GlobalSysObjMatrix
オブジェクトが含まれています。