メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

プログラムによる System ブロックの外観のカスタマイズ

R2026a

説明テキスト、端子ラベル、およびアイコン イメージを追加することで、MATLAB System ブロックのアイコンをカスタマイズできます。

メモ

R2023b 以降では、マスク エディターを使用して MATLAB System ブロックのアイコンを設計できます。既存のアイコンのカスタマイズをマスク エディターに移行することもできます。この機能を使用すると、System object™ ファイルで getInputNamesImplgetOutputNamesImpl、および getIconImpl メソッドを開発または維持する必要がなくなります。詳細については、Customize MATLAB System Icon and Dialog Box Using Mask Editorを参照してください。

入力名と出力名の指定

MATLAB System ブロックを使用して実装された System object ベース ブロックの入力端子と出力端子の名前を指定します。

getInputNamesImpl および getOutputNamesImpl を使用して入力端子の名前を "source data"、出力端子の名前を "count" に指定します。

getInputNamesImpl メソッドと getOutputNamesImpl メソッドを指定しない場合、オブジェクトでは入力端子名と出力端子名にそれぞれ stepImpl メソッドの入力変数および出力変数の名前が使用されます。stepImpl メソッドが変数名ではなく varargin および varargout を使用している場合、端子名は既定で空の文字ベクトルに設定されます。

methods (Access = protected)
   function inputName = getInputNamesImpl(~)
          inputName = 'source data';
   end
   
   function outputName = getOutputNamesImpl(~)
          outputName = 'count';
   end
end
classdef MyCounter < matlab.System
  
   % MyCounter Count values above a threshold
     
    properties
       Threshold = 1
    end
    properties (DiscreteState)
       Count
    end
 
    methods
       function obj = MyCounter(varargin)
          setProperties (obj,nargin,varargin{:});
       end
    end
 
    methods (Access = protected)
       function setupImpl(obj)
          obj.Count = 0;
       end
       function resetImpl(obj)
          obj.Count = 0;
       end
       function y = stepImpl(obj,u)
          if (u > obj.Threshold)
             obj.Count = obj.Count + 1;
          end
          y = obj.Count;
       end
       function inputName = getInputNamesImpl(~)
          inputName = 'source data';
       end
       function outputName = getOutputNamesImpl(~)
          outputName = 'count';
       end
    end
end

ブロック アイコンへのテキストの追加

MATLAB System ブロックを使用して実装された System object ベース ブロックのブロック アイコンにテキストを追加します。

  1. カスタム アイコン クラスからのサブクラス化を行います。

    classdef MyCounter < matlab.System & matlab.system.mixin.CustomIcon

  2. getIconImpl を使用して、ブロック アイコンを 2 つの単語間に改行を含む New Counter として指定します。

    methods (Access = protected)
        function icon = getIconImpl(~)
            icon = {'New','Counter'};
        end
    end
    classdef MyCounter < matlab.System & ...
       matlab.system.mixin.CustomIcon
      
       % MyCounter Count values above a threshold
         
        properties
           Threshold = 1
        end
        properties (DiscreteState)
           Count
        end
     
        methods
           function obj = MyCounter(varargin)
              setProperties(obj,nargin,varargin{:});
           end
        end
     
        methods (Access = protected)
           function setupImpl(obj)
              obj.Count = 0;
           end
           function resetImpl(obj)
              obj.Count = 0;
           end
           function y = stepImpl(obj,u)
              if (u > obj.Threshold)
                 obj.Count = obj.Count + 1;
              end
              y = obj.Count;
           end
           function icon = getIconImpl(~)
              icon = {'New','Counter'};
           end
        end
    end

ブロック アイコンへのイメージの追加

MATLAB System ブロックを使用して実装された System object ベース ブロックのブロック アイコン上のイメージを定義します。

  1. カスタム アイコン クラスからのサブクラス化を行います。

    classdef MyCounter < matlab.System & matlab.system.mixin.CustomIcon

  2. getIconImpl メソッドを使用して matlab.system.display.Icon クラスを呼び出し、イメージを指定します。

    methods (Access = protected)
        function icon = getIconImpl(~)
            icon = matlab.system.display.Icon('counter.png');
        end
    end
    classdef MyCounter < matlab.System & ...
       matlab.system.mixin.CustomIcon
      
       % MyCounter Count values above a threshold
         
        properties
           Threshold = 1
        end
        properties (DiscreteState)
           Count
        end
     
        methods
           function obj = MyCounter(varargin)
              setProperties(obj,nargin,varargin{:});
           end
        end
     
        methods (Access = protected)
           function setupImpl(obj)
              obj.Count = 0;
           end
           function resetImpl(obj)
              obj.Count = 0;
           end
           function y = stepImpl(obj,u)
              if (u > obj.Threshold)
                 obj.Count = obj.Count + 1;
              end
              y = obj.Count;
           end
           function icon = getIconImpl(~)
              icon = matlab.system.display.Icon('counter.png');
           end
        end
    end

参考

関数

クラス

トピック