Main Content

アプリを使用した例による入力パラメーターの定義

例による入力パラメーターの定義

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

    App menu, showing Define by Example menu item

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに、MATLAB® 式を入力します。変数には、式の値のクラス、サイズおよび実数/複素数があります。

    あるいは、表示されるワークスペース変数のリストから変数を選択できます。

    App window, showing list of variables

例による入力パラメーターの指定

この例では、16 ビット符号なし整数の 1 行 4 列のベクトルを指定する方法を示します。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに次のように入力します。

    zeros(1,4,'uint16')

    入力の型は uint16(1x4) です。

  5. オプションで、入力の型を指定した後に、入力が可変サイズであることを指定できます。たとえば、2 番目の次元を選択します。

    App dialog box, showing variable-sizing choices for the second dimension of variable A

  6. :4 を選択して、2 番目の次元が上限 4 の可変サイズであることを指定します。または、:Inf を選択して、2 番目の次元が無制限であることを指定します。

または、coder.newtype 関数を使用して入力が可変サイズであることを指定できます。MATLAB 式を入力します。

coder.newtype('uint16',[1 4],[0 1])

メモ

入力が倍精度スカラーであることを指定するには、0 を入力します。

例による string スカラーの入力パラメーターの指定

以下の例では、string の例を提供することで string スカラー型の指定方法を説明します。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに次のように入力します。

    "mystring"

    入力パラメーターは 1 行 8 列の文字ベクトルを含む 1 行 1 列の string 配列 (string スカラー) です。

    App window, showing contents of string scalar s

  5. string を可変サイズにするには、2 番目の次元をクリックします。

    • 2 番目の次元が無制限であることを指定するには、:Inf を選択します。

    • 2 番目の次元に上限があることを指定するには、8 などの上限を入力します。次に、:8 を選択します。

例による構造体型入力パラメーターの指定

この例では、2 つのフィールド ab をもつ構造体を指定する方法について示します。a の入力の型はスカラーの double です。b の入力の型はスカラーの char です。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに次のように入力します。

    struct('a', 1, 'b', 'x')
    

    入力パラメーターの型は struct(1x1) です。フィールド a の型は double(1x1) です。フィールド b の型は char(1x1) です。

  5. 構造体の配列の場合、各次元のサイズを指定するには、次元をクリックしてサイズを指定します。たとえば、最初の次元に 4 を入力します。

  6. :4 を選択して、2 番目の次元が上限 4 の可変サイズであることを指定します。または、:Inf を選択して、2 番目の次元が無制限であることを指定します。

または、関数 struct の呼び出しで構造体の配列のサイズを指定します。たとえば、struct('a', { 1 2}, 'b', {'x', 'y'}) は、フィールド ab をもつ 1 行 2 列の構造体の配列を指定します。フィールド a の型は double(1x1) です。フィールド b の型は char(1x1) です。

型の定義を変更する方法については、構造体入力パラメーターの指定を参照してください。

例による cell 配列型の入力パラメーターの指定

この例では、cell 配列入力を指定する方法について示します。例で cell 配列を定義すると、アプリは、cell 配列が同種であるか異種混合であるかを判別します。cell 配列のコード生成を参照してください。cell 配列が同種であるか異種混合であるかを制御するには、cell 配列を型で指定します。cell 配列の入力パラメーターの指定を参照してください。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに cell 配列の例を入力します。

    • cell 配列のすべての要素が同じプロパティをもつ場合、cell 配列は同種になります。たとえば、次のコマンドを入力します。

      {1 2 3}
      
      入力は 1 行 3 列の cell 配列になります。各要素の型は double(1x1) です。

      App window, showing the types and sizes of elements in a homogenous cell array

      中かっこ {:} 内のコロンは、すべての要素が同じプロパティをもつことを示しています。

    • cell 配列の要素が異なるクラスをもつ場合、その cell 配列は異種混合になります。たとえば、次のコマンドを入力します。

      {'a', 1}
      入力は 1 行 2 列の cell 配列になります。異種混合 cell 配列の場合、アプリで各要素が一覧表示されます。最初の要素の型は char(1x1) です。2 番目の要素の型は double(1x1) です。

      App window, showing the types and sizes of elements in a heterogeneous cell array

    • cell 配列の一部の例では、同種または異種混合になる分類があいまいです。これらの cell 配列に対し、アプリはヒューリスティックな方法を使用して、cell 配列が同種であるか異種混合であるかを判別します。たとえば、例の cell 配列に次を入力します。

      {1 [2 3]}
      要素は同じクラスをもちますが、サイズは異なります。アプリは、入力が 1 行 2 列の異種混合 cell 配列であると判別します。最初の要素の型は double(1x1) です。2 番目の要素の型は double(1x2) です。

      App window, showing the types and sizes of elements in an ambiguously heterogeneous cell array

      ただし、例の cell 配列 {1 [2 3]} は、要素が 1 行 :2 列の double である同種 cell 配列になる場合もあります。この cell 配列を同種にする必要がある場合、次のいずれかを行います。

      • cell 配列入力を型で指定します。入力に同種 cell 配列を指定します。要素に 1 行 :2 列の double を指定します。cell 配列の入力パラメーターの指定を参照してください。

      • 変数を右クリックします。[同種] を選択します。要素に 1 行 :2 列の double を指定します。

      coder.typeof を使用して例の cell 配列が可変サイズであることを指定する場合、アプリは cell 配列を同種にします。たとえば、例として次を入力します。

      coder.typeof({1 [2 3]}, [1 3], [0 1])
      アプリは、入力が、1 行 :2 列の double の要素をもつ 1 行 :3 列の同種 cell 配列であると判別します。

型の定義を変更する方法については、cell 配列の入力パラメーターの指定を参照してください。

例による列挙型入力パラメーターの指定

この例では、入力が列挙型 MyColors を使用することを指定する方法を示します。

MyColors.m が MATLAB パス上にあると仮定します。

classdef MyColors < int32
    enumeration
        green(1),
        red(2),
    end
end

入力が列挙型 MyColors であることを指定するには次の手順に従ってください。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

    App menu, showing Define by Example menu item

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに、MATLAB 式を入力します。

    MyColors.red

例によるオブジェクト入力型パラメーターの指定

この例では、値クラス myRectangle のオブジェクトに対する型を指定する方法を説明します。

classdef myRectangle
    properties
        length;
        width;
    end
    methods
        function obj = myRectangle(l,w)
            if nargin > 0
                obj.length = l;
                obj.width = w;
            end
        end
        function area = calcarea(obj)
            area = obj.length * obj.width;
        end
    end
end

  1. 値クラスのオブジェクトを入力として取得する関数を定義します。次に例を示します。

    function z = getarea(r)
    %#codegen
    z = calcarea(r);
    end

  2. MATLAB で、rect_obj オブジェクトを定義します。

    rect_obj = myRectangle(3,4)

  3. アプリの [ソース ファイルの選択] ページで、エントリポイント関数に対する getarea を入力します。

  4. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  5. r の右にあるフィールドをクリックします。

  6. [例で定義] を選択します。

  7. r の右にあるフィールドで、rect_obj を入力するか、ワークスペース変数のリストから選択します。アプリは、r がプロパティ length および width を持つクラスであると判別します。

または、該当のクラスの coder.ClassType オブジェクトを指定できます。coder.ClassType オブジェクトを定義するには、coder.typeof を使用します。次に例を示します。

  1. MATLAB で、rect_obj と同じプロパティがある coder.ClassType オブジェクトを定義します。

    t = coder.typeof(rect_obj)

  2. アプリで、t を例として指定します。

プロパティのサイズまたは型を変更するには、プロパティの右側のフィールドをクリックします。

コードを生成する場合、アプリで定義するプロパティは、クラス定義ファイルのプロパティと一致しなければなりません。クラス定義ファイルにコードで使用しないプロパティがある場合、アプリの型定義にそれらのプロパティを含める必要はありません。コード ジェネレーターは、コードで使用しないプロパティを削除します。

MATLAB Coder アプリでの入力としてのオブジェクトの指定を参照してください。

例による固定小数点入力パラメーターの指定

固定小数点入力を指定するには、Fixed-Point Designer™ ソフトウェアがインストールされていなければなりません。

この例では、語長 8 ビット、小数部の長さ 3 ビットの符号付き固定小数点型を指定する方法を示します。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックします。

  3. [例で定義] を選択します。

  4. パラメーターの右にあるフィールドに次のように入力します。

    fi(10, 1, 8, 3) 

    アプリは入力 u の型を fi(1x1) に設定します。既定では、ローカル fimath を指定しない場合、アプリは既定の fimath を使用します。fimath による演算規則の共有 (Fixed-Point Designer)を参照してください。

    オプションで、入力の固定小数点プロパティまたはサイズを変更します。固定小数点入力パラメーターの指定およびアプリを使用した入力パラメーターの型の定義または編集を参照してください。

エントリポイント関数出力タイプからの入力の指定

複数のエントリポイント関数のコードを生成するときに、1 つのエントリポイント関数からの出力タイプを別のエントリポイント関数への入力タイプとして使用できます。詳細については、入力としてのエントリポイント関数出力の受け渡しを参照してください。

  1. [入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。

  2. 定義する入力パラメーターの右側のフィールドをクリックして、[出力の使用] を選択します。

    App menu, showing Use Output menu item

  3. 入力タイプを定義するエントリポイント関数の名前と対応する出力パラメーターを選択します。

MATLAB Coder™ アプリは、MATLAB Online™ でサポートされていません。