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

coder.CellType クラス

パッケージ: coder
スーパークラス: coder.ArrayType

MATLAB cell 配列のセットを表す

説明

生成されたコードが受け入れる cell 配列のセットを指定します。codegen -args オプションでのみ使用します。生成された MEX 関数に入力として渡さないでください。

作成

t = coder.typeof(cells) は、cells と同じ cell と cell の型をもつ cell 配列に coder.CellType オブジェクトを作成します。cells 内のセルは型オブジェクトまたは例の値です。

t = coder.typeof(cells,sz,variable_dims) は、sz で指定された上限と variable_dims で指定された可変次元をもつ coder.CellType オブジェクトを作成します。sz で次元に inf を指定する場合は、次元のサイズは無限で、次元は可変サイズです。sz[] の場合、上限サイズは変化しません。variable_dims 入力パラメーターを指定しないと、次元に制限がない場合を除いて、この型の次元が固定されます。スカラー variable_dims1 でも 0 でもない制限付き次元に適用されます。

異なるクラスをもつ要素の cell 配列を cells で指定する場合、coder.typeof を使用して可変サイズの cell 配列に coder.CellType オブジェクトを作成することはできません。

t = coder.newtype('cell',cells) は、cells で指定された cell と cell の型をもつ cell 配列の coder.CellType オブジェクトを作成します。cells 内のセルは型オブジェクトでなければなりません。

t = coder.newtype('cell',cells,sz,variable_dims)sz で指定された上限と variable_dims で指定された可変次元をもつ coder.CellType を作成します。sz で次元に inf を指定する場合は、次元のサイズは無限で、次元は可変サイズです。sz[] の場合、上限サイズは変化しません。variable_dims 入力パラメーターを指定しないと、次元に制限がない場合を除いて、この型の次元が固定されます。スカラー variable_dims1 でも 0 でもない制限付き次元に適用されます。

異なるクラスをもつ要素の cell 配列を cells で指定する場合、coder.newtype を使用して可変サイズの cell 配列に coder.CellType オブジェクトを作成することはできません。

入力引数

すべて展開する

出力 coder.CellType オブジェクトにセルとセルの型を指定する cell 配列。coder.typeof の場合、cells は型オブジェクトまたは例の値を含めることができます。coder.newtype の場合、cells には型オブジェクトを含めなければなりません。

cell 配列型オブジェクトの各次元に上限を指定します。coder.newtype の場合、sz で異種混合 cell 配列の cell 数を変更することはできません。

coder.newtype の場合、既定の設定は [1 1] です。

各次元のサイズが可変 (true) か、固定 (false) かを指定します。

coder.newtype では、inf の上限を指定する sz の次元に対する既定の設定は true で、他のすべての次元に対する設定は false になります。

異なるクラスをもつ要素の cell 配列を cells で指定する場合、可変サイズの cell 配列に coder.CellType オブジェクトを作成することはできません。

プロパティ

すべて展開する

この型の構造体での実行時のメモリ配置 (バイト単位)。Embedded Coder® ライセンスをお持ちの場合、コード置換ライブラリ (CRL) を使用している場合は、置換関数に渡したデータ オブジェクトを指定の境界に配置する機能が CRL によって提供されます。データを境界に合わせる必要があるターゲット固有の関数実装を活用できます。既定では、構造体は特定の境界に配置されないため、アライメントを必要とする CRL の関数とは一致しません。

各セルの coder.Type を指定する cell 配列。

このセットの値のクラス。

cell 配列型が外部で定義されているかどうかを指定します。

cell 配列の型が外部で定義されている場合、その型の外部定義を含むヘッダー ファイルの名前。たとえば、'mytype.h' などです。codegen コマンドを使用してファイルへのパスを指定する場合は、-I オプションを使用します。MATLAB® Coder™ アプリを使用してファイルへのパスを指定する場合は、[プロジェクトの設定] ダイアログ ボックスの [カスタム コード] タブで [追加インクルード ディレクトリ] 設定を使用します。

既定では、生成されたコードには、標準ヘッダー ファイルの後にカスタム ヘッダー ファイル用の #include ステートメントが含まれます。標準ヘッダー ファイルがカスタムの構造体型を参照している場合は、コンパイルが失敗します。HeaderFile オプションを指定すると、コード ジェネレーターによってカスタム ヘッダー ファイルが必要とされる場所にインクルードされます。

cell 配列の次元の上限。

この cell 配列型を表す構造体型の生成されたコードで使用する名前。TypeName は異種混合 cell 配列型にのみ適用されます。

配列の各次元のサイズが固定か可変かを指定するベクトル。ベクトルの要素が true の場合、対応する次元のサイズは可変です。

メソッド

isHeterogeneouscell 配列型が異種混合 cell 配列を表すかどうかの判定
isHomogeneouscell 配列型が同種 cell 配列を表すかどうかの判定
makeHeterogeneouscell 配列型の異種混合コピーの作成
makeHomogeneouscell 配列型の同種コピーの作成

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、オブジェクトのコピー (MATLAB)を参照してください。

すべて折りたたむ

最初の要素がクラス char で 2 番目の要素がクラス double の cell 配列に型を作成します。

t = coder.typeof({1 2 3})
t = 

coder.CellType
   1x3 homogeneous cell 
      base: 1x1 double

型は同種になります。

cell 配列型の例の要素が同じクラスをもつ場合に異種混合の型を作成するには、makeHeterogeneous メソッドを使用します。

t = makeHeterogeneous(coder.typeof({1 2 3}))
t = 

coder.CellType
   1×3 locked heterogeneous cell 
      f1: 1×1 double
      f2: 1×1 double
      f3: 1×1 double

cell 配列型は異種混合になります。生成されたコード内の構造体として表されます。

セルの例の値である変数を定義します。

a = 'a';
b = 1;

cell の例の値を coder.typeof に渡します。

t = coder.typeof({a, b})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 char
      f1: 1x1 double

サイズの異なる 2 つの文字ベクトルが含まれる cell 配列の型を作成します。

t = coder.typeof({'aa', 'bbb'})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x2 char
      f1: 1x3 char

cell 配列型は異種混合になります。

同じ cell 配列入力を使用して型を作成します。今度は、可変サイズの次元をもつ cell 配列型を指定します。

t = coder.typeof({'aa','bbb'},[1,10],[0,1])
t = 

coder.CellType
   1×:10 locked homogeneous cell 
      base: 1×:3 char

cell 配列型は同種になります。coder.typeof は基本データ型 1x:3 char'aa''bbb' を表現できることを判別しています。

スカラー int8 の型を作成します。

ta = coder.newtype('int8',[1 1]);

:1 行 :2 列の double の行ベクトルの型を作成します。

tb = coder.newtype('double',[1 2],[1 1]);

tata で指定した型をもつセルの cell 配列型を作成します。

t = coder.newtype('cell',{ta,tb})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 int8
      f1: :1x:2 double

異種混合 cell 配列のセル型を作成します。

ca = coder.typeof(double(0));
cb = coder.typeof(single(0));
t = coder.typeof({ca cb})
coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 double
      f1: 1x1 single

coder.cstructname を使用して、型の名前と、型が外部ファイルで定義されることを指定します。

t = coder.cstructname(t,'mytype','extern','HeaderFile','myheader.h')
t = 

coder.CellType
   1×2 extern locked heterogeneous cell mytype(myheader.h) [-1] 
      f1: 1×1 double
      f2: 1×1 single

ヒント

  • coder.CellType オブジェクトの表示では、用語 locked heterogeneous または locked homogeneous は、同種または異種混合としての分類が永続的であることを示しています。makeHomogeneous メソッドまたは makeHeterogeneous メソッドを使用して、分類を後で変更することはできません。

  • coder.typeof は cell 配列型が同種または異種混合のどちらであるかを判定します。cell 配列要素のクラスとサイズが同じ場合、coder.typeof は同種 cell 配列型を返します。要素のクラスが異なる場合、coder.typeof は異種混合 cell 配列型を返します。一部の cell 配列では、同種であるか異種混合であるかの分類はあいまいです。たとえば、{1 [2 3]} の型に 1 行 2 列の異種混合型を使用できます。最初の要素は double で 2 番目の要素は 1 行 2 列の double です。型に、double のクラスと 1 行 :2 列のサイズをもつ要素の 1 行 3 列の同種型を使用することもできます。このようなあいまいなケースでは、coder.typeof はヒューリスティックな方法を使用して型を同種または異種混合として分類します。異なる分類が必要な場合は、makeHomogeneous メソッドまたは makeHeterogeneous メソッドを使用します。makeHomogeneous メソッドは型の同種コピーを作成します。makeHeterogeneous メソッドは型の異種混合コピーを作成します。

    makeHomogeneous メソッドと makeHeterogeneous メソッドは分類を同種および異種混合としてそれぞれ永続的に割り当てます。これらのいずれかの方法を後で使用して分類が異なるコピーを作成することはできません。

R2015b で導入