Main Content

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

MATLAB クラスの固定小数点コード

MATLAB クラスの自動変換サポート

固定小数点の自動変換プロセスは次を行います。

  • MATLAB® クラスのシミュレーション範囲に基づく固定小数点データ型の推奨。MATLAB クラスの派生範囲に基づいたデータ型は推奨しません。

    シミュレーション後、固定小数点コンバーター アプリは以下を実行します。

    • クラス コンストラクター、メソッドおよび特殊化を含む関数リスト。

    • 各関数で使用されたオブジェクトをコード ウィンドウに表示。

    • メソッドのコード カバレッジを提供。

    詳細は、MATLAB クラスの情報の表示を参照してください。

  • クラス メソッド、プロパティおよび特殊化のサポート。クラス class_name の各特殊化に対しては、変換により個別の class_name_fixpt.m ファイルが生成されます。クラスの各インスタンス化に対しては、適切な特殊化のコンストラクターへの呼び出しが生成された固定小数点コードに含まれます。

  • get.PropertyNameset.PropertyName などの get メソッドおよび set メソッドをもつクラスのサポート。これらのメソッドは、プロパティが読み取られるか代入されるときに呼び出されます。set メソッドは特殊化することも可能です。生成された固定小数点コード内で、代入ステートメントが関数呼び出しに変換される場合もあります。

サポートされていない構造体

自動変換プロセスは以下をサポートしません。

  • クラスの継承。

  • パッケージ。

  • nargin および varargin を使用するコンストラクター。

コーディング スタイルのベスト プラクティス

MATLAB クラスを使用する MATLAB コードを記述する場合は以下を実行します。

  • クラス コンストラクターのプロパティの初期化。

  • 定数プロパティを静的メソッドで置換。

たとえば、counter クラスについて考えてみます。

classdef Counter < handle
  properties
    Value = 0;
  end

  properties(Constant)
    MAX_VALUE = 128
  end
  
  methods
    function out = next(this)
      out = this.Count;
      if this.Value == this.MAX_VALUE
        this.Value = 0;
      else
        this.Value = this.Value + 1;
      end
    end
  end
end
固定小数点の自動変換プロセスを使用するには、定数プロパティの MAX_VALUE を初期化する静的クラスおよび Value プロパティを初期化するコンストラクターをもつようにクラスを書き換えます。
classdef Counter < handle
  properties
    Value;
  end

  methods(Static)
    function t = MAX_VALUE()
      t = 128;
    end
  end
  
  methods
    function this = Counter()
      this.Value = 0;
    end 
    function out = next(this)
      out = this.Value;
      if this.Value == this.MAX_VALUE
        this.Value = 0;
      else
        this.Value = this.Value + 1;
      end
    end
  end
end