## 3 Data Types

All versions of Octave include a number of built-in data types, including real and complex scalars and matrices, character strings, a data structure type, and an array that can contain all data types.

It is also possible to define new specialized data types by writing a small amount of C++ code. On some systems, new data types can be loaded dynamically while Octave is running, so it is not necessary to recompile all of Octave just to add a new type. See Dynamically Linked Functions, for more information about Octave's dynamic linking capabilities. User-defined Data Types describes what you must do to define a new data type for Octave.

— Built-in Function: typeinfo (expr)

> Return the type of the expression expr, as a string. If EXPR is omitted, return an array of strings containing all the currently installed data types.