Main Content

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

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

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

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

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

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

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

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

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

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

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

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

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

    zeros(1,4,'uint16')

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

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

  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 スカラー) です。

  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)です。

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

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

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

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

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

      ただし、例の 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. 定義する入力パラメーターの右側のフィールドをクリックします。

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

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

    MyColors.red

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

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

classdefmyRectanglepropertieslength; width;endmethodsfunctionobj = myRectangle(l,w)ifnargin > 0 obj.length = l; obj.width = w;endendfunctionarea = calcarea(obj) area = obj.length * obj.width;endendend

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

    functionz = getarea(r)%#codegenz = 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. 定義する入力パラメーターの右側のフィールドをクリックして、(出力の使用)を選択します。

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

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