Main Content

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

coder.CellType クラス

名前空間: coder
スーパークラス: coder.ArrayType

MATLAB cell 配列のセットを表す

説明

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

構築

メモ

coder.Type オブジェクトの作成と編集は、コード生成の型エディターを使用して対話形式で行うこともできます。コード生成の型エディターを使用した入力の型の作成と編集を参照してください。

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 オブジェクトを作成することはできません。

プロパティ

すべて展開する

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

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

cell 配列の次元の上限。

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

メソッド

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

コピーのセマンティクス

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

すべて折りたたむ

最初の要素がクラス 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

ヒント

  • 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 です。また、この型を 1 行 3 列の同種型にして、その要素のクラスを double で、サイズを 1 行 :2 列にすることもできます。このようなあいまいなケースでは、coder.typeof はヒューリスティックな方法を使用して型を同種または異種混合として分類します。異なる分類が必要な場合は、makeHomogeneous メソッドまたは makeHeterogeneous メソッドを使用します。makeHomogeneous メソッドは型の同種コピーを作成します。makeHeterogeneous メソッドは型の異種混合コピーを作成します。

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

バージョン履歴

R2015b で導入