Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.1 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Data Structures > typeof


explicit type or overloading code of an object


t  = typeof(object)
oc = typeof(object, "overload")



a Scilab object


a string (may have spaces): the name of the type of object


a string (without spaces): the name of the overloading code for the object.


t = typeof(object) returns one of the following strings:

string object is a matrix or hypermatrix made of characters and texts.
boolean object is a boolean matrix or hypermatrix.
int8 or int16 or int32 or int64 or uint8 or uint16 or uint32 or uint64
object is a matrix or hypermatrix of [unsigned] integers stored on 8, 16, 32 or 64 bits. (see inttype)
constant object is matrix or hypermatrix of decimal or complex numbers.
polynomial object is a matrix or hypermatrix of polynomials with decimal or complex coefficients.
rational object is a matrix or hypermatrix of rational fractions (e.g. transfer matrix), with decimal or complex coefficients.
handle object is a graphics handle. The subtype of graphics handles (Figure, Axes, Polyline, Compound, etc) is available in their .type property. See examples below.
list object is a list.
st object is a structure or a nD-array of structures.
ce object is a cell or a nD-array of cells.
boolean sparse object is a boolean sparse matrix.
Sparse boolean hypermatrices are not supported.
sparse object is a sparse matrix of decimal or complex numbers.
Sparse numerical hypermatrices are not supported.
"Matlab sparse" object is a Matlab-like-encoded sparse matrix (see mtlb_sparse()).
fptr object is a built-in Scilab function, called also gateway (C, C++ or Fortran code), a.k.a. a primitive.
function object is a function (Scilab code). See also deff.
library object is a library of functions in Scilab language.
pointer object is a pointer. See a use case: lufact.
implicitlist object is an implicit list using a polynomial as formal index, for indexing. See n:$ : (colon)
listdelete is returned by typeof(null()) . See null().
void is the typeof undefined elements in lists.
Typed T-Lists or M-Lists:
Note that if the object is a tlist or a mlist, typeof will return the corresponding customized type stored in as a string in the first list entry.
Reserved T-List or M-List types predefined in Scilab:
dir object is the result of a dir() instruction, with fields name, date, bytes, and isdir.
state-space object is a state-space model (see syslin).
program object is a list describing the internal code of a function (see macr2tree).
cblock object is a block of columns of same heights but of different data types, as returned by mfscanf.
XMLDoc object is an XML Document created with xmlRead, xmlReadStr, htmlRead, or htmlReadStr. Additional XML typeof are defined.
H5Object object is the id of an HDF5 file opened with h5open. Additional HDF5 typeof are defined: See HDF5 Objects.
uitree object is a tree, a branch or a leaf as created with a uitree feature. See for instance uiCreateNode.
Reserved T-list types used in Xcos :
Block object is a Xcos block.
cpr object is a tlist containing the compilation results of a Xcos diagram.
diagram object is a tlist defining a Xcos diagram: initial parameters, set of blocks, of links between blocks, and of Text labels belonging to the diagram.
graphics object is a tlist assigned to the .graphics field of a block.
Link object is a tlist defining and configuring a link between 2 blocks.
model object is a tlist assigned to the .model field of a block.
params object is a tlist containing some configuration parameters of a Xcos diagram.
scsopt object is a tlist containing the graphical options of the Xcos diagram editor.
scs object is a tlist containing static results of the compilation of a Xcos diagram.
xcs object is a tlist containing dynamical results during a Xcos simulation.
Text object is a tlist defining a text label in a Xcos diagram.


// Characters and texts
t = ["a" "Hello"   "à é è ï ô û ñ"
     "1" "Bonjour" "указывает тип объекта"
     ";" "Chao"    "オブジェクトの型"

// Booleans
hm = grand(2,2,2,"uin",0,9)<5

// Encoded integers
[ typeof(uint8(%pi))  typeof(int8(-%pi))
  typeof(uint16(%pi)) typeof(int16(-%pi))
  typeof(uint32(%pi)) typeof(int32(-%pi))
  typeof(uint64(%pi)) typeof(int64(-%pi))

// Decimal numbers
n = 1:0.3:2
hm = grand(2,2,2,"uin",0,9)

// Decimal integers
n = 1:7

// Complex numbers
n = [%i 1-%i %pi - 3*%i]

// Special "constant"
typeof([])   // empty matrix

// Polynomials
n = [ %z (1-%z)^2]
n = [ 3*%i + %z (1-%i*%z)^2]

// Rational fractions
r = [%s/(1-%s) (1+%s)^2/(1-%s)]   // with real coefficients
r = [%s/(%i-%s) (%i+%s)^2/(1-%s)] // with complex coefficients

// Sparse matrices
// ---------------
w = sprand(100,100,0.001)
typeof(w)     // sparse
typeof(w==w)  // boolean sparse
//x = mtlb_sparse(sprand(10,10,0.1));

// Functions and libraries
// -----------------------
deff('y=f(x)','y=2*x');  // Function in Scilab language
typeof(cosd)  // written in Scilab

typeof(corelib) // Library of functions in Scilab language

typeof(sin)     // Built-in function (non-editable)
mysin = sin;

// Graphical handles
// -----------------
// The subtype of the handle is in the "type" property:


// Containers
// ----------
// Simple list
L = list(%pi, %t, %z, %s/(1-%s), "Bonjour", sin, cosd, list("list_in_list", 432));

// Cells array
C = {%pi, %t, %z ; %s/(1-%s), "Bonjour", list("list_in_list", 432) }

// (Array of) Structure
S.num = %pi;
S.b = %t;
S(2).t = "Bonjour"

// Special generic indexing expressions
// ------------------------------------
typeof(:)    // "eye()" equivalent (all elements)

// Typeof for deletion or undefined elements:
// -----------------------------------------
typeof([])      // empty matrix
L = list(%pi, ,"hey!")
typeof(L(2))   // undefined element

// Customized typeof of T-Lists:
// ----------------------------
L = tlist(['myLongTypeOf','a','b'], 18, 'Scilab');

// Reserved T-List typeof
// ----------------------
typeof(dir())        // Files directory
c = macr2tree(sind); // Internal code of a Scilab macro
doc = xmlReadStr("<root><a att=""foo"">Hello</a></root>");
x = 1;
save(TMPDIR + "/x.sod", "x"); // SOD files are HDF5 ones
a = h5open(TMPDIR + "/x.sod");

See also

  • type — returns the type of a Scilab object
  • inttype — type integers used in integer data types
  • overloading — display, functions and operators overloading capabilities
  • isreal — check if a variable is stored as a complex matrix
  • strings — Scilab Object, character strings
  • poly — polynomial definition
  • rlist — Scilab rational fraction function definition
  • null — delete an element in a list
  • sparse — sparse matrix definition
  • issparse — determine whether input is sparse
  • mtlb_sparse — convert sparse matrix
  • syslin — linear system definition
  • dir — gets file list
  • XML Objects — Describe the properties of the different XML objects
  • HDF5 Objects — Describe the properties of the different H5 objects


  • "overload" keyword added.
  • typeof "uint64" and "int64" added.
  • typeof "hypermat" removed. Hypermatrices of any homogeneous type are now natively supported.
  • typeof "listdelete" and "void" added.
  • typeof(:) was "constant" and becomes "implicitlist". typeof(1:$) was "size implicit" and become "implicitlist".
  • The typeof of T-lists and M-lists were limited to 8 characters. They may be longer now.
  • typeof "size implicit" renamed "implicitlist" (1:$)
  • Help page reviewed.
Report an issue
<< typename Data Structures Parameters >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:26:51 CET 2018