Main Content

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

isHomogeneous

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

cell 配列型が同種 cell 配列を表すかどうかの判定

構文

tf = isHomogeneous(t)

説明

tf = isHomogeneous(t) は、coder.CellType オブジェクト t が同種 cell 配列を表す場合は true を返します。それ以外の場合は false を返します。

すべて展開する

同じクラスとサイズの要素をもつ cell 配列に coder.CellType オブジェクトを作成します。

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

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

coder.CellType オブジェクトが同種 cell 配列を表すかどうかを判定します。

isHomogeneous(t)
ans =

     1

関数 make_varsize を記述します。入力型 t が同種の場合、関数は t の可変サイズのコピーを返します。

function c = make_varsize(t, n)
assert(isHomogeneous(t));
c = coder.typeof(t, [n n], [1 1]);
end

異種混合型の tc を作成します。

tc = coder.typeof({'a', 1});

tcmake_varsize に渡します。

tc1 = make_varsize(tc, 5)

tc が異種混合であるため、アサーションに失敗します。

同種型の tc を作成します。

tc = coder.typeof({1 2 3});

tcmake_varsize に渡します。

tc1 = make_varsize(tc, 5)
tc1 = 

coder.CellType
   :5x:5 homogeneous cell 
      base: 1x1 double

ヒント

  • 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 で導入