System object でのグローバル変数の使用
グローバル変数は、他の MATLAB® 関数または Simulink® ブロックでアクセスできる変数です。
MATLAB の System object のグローバル変数
MATLAB のみで使用される System object の場合、他の MATLAB コードでグローバル変数を定義するのと同じ方法で System object™ クラス定義ファイルでグローバル変数を定義します (グローバル変数を参照)。
Simulink の System object のグローバル変数
Simulink の MATLAB System ブロックで使用される System object の場合、MATLAB で定義するのと同様にグローバル変数を定義します。ただし、Simulink でグローバル変数を使用するには、stepImpl
、updateImpl
、または outputImpl
で呼び出されるメソッドでグローバル変数を宣言していた場合、それぞれ stepImpl
、updateImpl
、または outputImpl
メソッドでグローバル変数を宣言しなければなりません。
MATLAB System ブロックのグローバル変数を、MATLAB Function ブロックと同じ方法でセットアップして使用します (データ ストアおよびMATLAB Function ブロックでのグローバル データの使用を参照)。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
オブジェクトが含まれています。