Main Content


Class: coder.CellType
Namespace: coder

Determine whether cell array type represents heterogeneous cell array


tf = isHeterogeneous(t)


tf = isHeterogeneous(t) returns true if the coder.CellType object t is heterogeneous. Otherwise, it returns false.


expand all

Create a coder.CellType object for a cell array whose elements have different classes.

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

   1x2 heterogeneous cell 
      f0: 1x1 char
      f1: 1x1 double

Determine whether the coder.CellType object represents a heterogeneous cell array.

ans =



  • coder.typeof determines whether the cell array type is homogeneous or heterogeneous. If the cell array elements have the same class and size, coder.typeof returns a homogeneous cell array type. If the elements have different classes, coder.typeof returns a heterogeneous cell array type. For some cell arrays, the classification as homogeneous or heterogeneous is ambiguous. For example, the type for {1 [2 3]} can be a 1x2 heterogeneous type. The first element is double and the second element is 1x2 double. The type can also be a 1x3 homogeneous type in which the elements have class double and size 1x:2. For these ambiguous cases, coder.typeof uses heuristics to classify the type as homogeneous or heterogeneous. If you want a different classification, use the makeHomogeneous or makeHeterogeneous methods. The makeHomogeneous method makes a homogeneous copy of a type. The makeHeterogeneous method makes a heterogeneous copy of a type.

    The makeHomogeneous and makeHeterogeneous methods permanently assign the classification as homogeneous and heterogeneous, respectively. You cannot later use one of these methods to create a copy that has a different classification.

Version History

Introduced in R2015b