ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

データ クラスの定義

この例では、Simulink® データ クラスをサブクラス化する方法を示します。

MATLAB® クラス構文を使用すると、パッケージにデータ クラスを作成し、またオプションでデータ クラスにプロパティを割り当て、カスタム ストレージ クラスを定義できます。

データ クラスの定義

  1. パッケージ フォルダー +mypkg を作成して、その親フォルダーを MATLAB パスに追加します。

  2. +mypkg の内部にクラス フォルダー @Parameter および @Signal を作成します。

      メモ:   Simulink では、データ クラスは +Package/@Class フォルダー内に定義する必要があります。

  3. @Parameter フォルダー内に MATLAB ファイル Parameter.m を作成して編集のために開きます。

  4. MATLAB クラス構文を使用して Simulink.Parameter のサブクラスであるデータ クラスを定義します。

    classdef Parameter < Simulink.Parameter
       
    end % classdef
    

オプション:プロパティをデータ クラスに追加する

propertiesend のキーワードは、プロパティ定義ブロックを囲んでいます。

サポートされるプロパティ タイプ」を参照してください。

classdef Parameter < Simulink.Parameter
	properties % Unconstrained property type
		Prop1 = [];
	end

	properties(PropertyType = 'logical scalar')
		Prop2 = false;
	end

	properties(PropertyType = 'char')
		Prop3 = '';
	end

	properties(PropertyType = 'char',...
      AllowedValues = {'red'; 'green'; 'blue'})
		Prop4 = 'red';
	end
end % classdef

    メモ:   MATLAB エディターは、PropertyType 属性および AllowedValues 属性を認識しませんが、これは Simulink データ クラスに対してのみ定義されるためです。これらの認識されない属性に関する mlint の警告を抑制するには、MATLAB エディターでその属性名を右クリックして、["属性名 '<属性名>' が不明..." を非表示にする][このファイルで] を選択します。

オプション:データ クラスに初期化コードを追加する

データ クラス内にコンストラクターを追加すると、クラスがインスタンス化されるときに初期化処理を実行できます。

この例では、コンストラクターはオプションの入力引数に基づいてオブジェクトの値 obj を初期化します。

classdef Parameter < Simulink.Parameter
	methods
		function obj = Parameter(optionalValue)
			if (nargin == 1)
				obj.Value = optionalValue;
			end
		end
	end % methods
end % classdef

オプション:カスタム ストレージ クラスの定義

setupCoderInfo メソッドを使用して、クラスの CoderInfo オブジェクトを設定します。次に、useLocalCustomStorageClasses メソッドへの呼び出しを作成して、カスタム ストレージ クラス デザイナーを起動します。

  1. データ クラス内のコンストラクターで useLocalCustomStorageClasses メソッドを呼び出します。

    classdef Parameter < Simulink.Parameter
    	methods
    		function setupCoderInfo(obj)
    			useLocalCustomStorageClasses(obj, 'mypkg');
    			
    			obj.CoderInfo.StorageClass = 'Custom';
    		end
    	end % methods
    end % classdef
    
  2. パッケージのためにカスタム ストレージ クラス デザイナーを起動します。

    cscdesigner('mypkg')
  3. カスタム ストレージ クラスを定義します。 「Use Custom Storage Class Designer」.

オプション:カスタム ストレージ クラスのカスタム属性の定義

  1. MATLAB ファイル myCustomAttribs.m を作成して編集用に開きます。

  2. Simulink.CustomStorageClassAttributes MATLAB クラス構文のサブクラスを定義します。

    classdef CSCAttributes < Simulink.CustomStorageClassAttributes
    	properties(PropertyType = 'char')
    		AlternateName = '';
    	end
    end % classdef
    
  3. getInstanceSpecificProps メソッドの既定の実装をオーバーライドします。

      メモ:   これはオプションの手順です。既定の設定では、すべてのカスタム属性を、カスタム ストレージ クラス デザイナーでインスタンス固有に設定することによって、各データ オブジェクトに対して変更できるようになります。ただし、どのプロパティをインスタンス固有になるように許可するかは制限できます。

classdef CSCAttributes < Simulink.CustomStorageClassAttributes
	properties(PropertyType = 'char')
		AlternateName = '';
	end % properties

	properties(PropertyType = 'logical scalar')
		IsAlternateNameInstanceSpecific = true;
	end
 
	methods
		function props = getInstanceSpecificProps(obj)
			if obj.IsAlternateNameInstanceSpecific
				props = findprop(obj, 'AlternateName');
			end
		end
	end % methods
end % classdef

データ クラスを定義する代替方法

  1. MATLAB パスの +SimulinkDemos データ クラス パッケージを検索します。

      メモ:   +SimulinkDemos フォルダーは matlabroot/toolbox/simulink/simdemos/dataclasses にあります。

    このパッケージには定義済みのデータ クラスが含まれています。

  2. データ クラスを定義する場所にフォルダーをコピーします。

  3. フォルダー +mypkg の名前を変更して、その親フォルダーを MATLAB パスに追加します。

  4. 必要に応じてデータ クラス定義を変更します。

この情報は役に立ちましたか?