Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский
Scilabヘルプ >> Data Structures > types > 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 — 変数の型を返す
  • inttype — 整数データ型で使用される整数型
  • overloading — 表示,関数および演算子オーバーロード機能
  • isreal — 変数が実数または複素数のエントリかどうかを調べるc
  • strings — Scilabオブジェクト, 文字列
  • poly — Polynomial definition from given roots or coefficients, or characteristic to a square matrix.
  • rlist — Scilab 有理関数定義
  • null — deletes a list component or a field of a structure, Mlist, or Tlist
  • sparse — 疎行列を定義
  • issparse — 入力値が疎行列かどうかを調べる (numeric or boolean)
  • mtlb_sparse — 疎行列に変換
  • syslin — 線形システムを定義する
  • dir — ファイル一覧を取得する
  • XML Objects — 異なるのXMLオブジェクトのプロパティを記述する
  • HDF5 Objects — 種々のH5オブジェクトのプロパティを説明


  • "overload" keyword added.
  • typeof "uint64" and "int64" added.
  • typeof "hypermat" removed. Hypermatrices of any homogeneous type are now natively supported.
  • typeof "listdelete" added (as returned by null()).
  • typeof() can now be used for any undefined element of a list. It then returns the new "void" typeof.
  • 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.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:02:16 CET 2019