Please note that the recommended version of Scilab is 6.1.1. This page might be outdated.
See the recommended documentation of this function
Scilab procedures and Scilab objects
Functions are Scilab procedures ("macro", "function" and "procedure" have the save meaning).
Usually, they are defined in files with an editor and loaded into Scilab using the exec function or through a library (see lib or genlib). But They can also be defined on-line (see deff or function. A function is defined by two components:
a "syntax definition" part as follows:
function [y1, ..., yn]=foo(x1, ...,xm) function [y1, ..., yn, varargout]=foo(x1, ...,xm,varargin)
a sequence of scilab instructions.
The "syntax definition" line gives the "full" calling syntax of
this function. The
yi are output variables
calculated as functions of input variables
and variables existing in Scilab when the function is
Usually function calling syntax is
[y1,...,yn]=foo(x1,...,xm). Shorter input or output argument list than definition ones may be used. In such cases, only the first variables from the left are used or set.
The argn function may be used to get the actual number of calling arguments.
It is possible to define function with indeterminate number of input or output maximum number of arguments. This can be done using the varargin and varargout keywords. See the given links for details.
It is also possible to use "named argument" to specify input arguments: suppose function
function y1=fun1(x1,x2,x3)then it can be called with a syntax like
y=fun1(x1=33,x3=[1 2 3])within
fun1x2 will be undefined,
it can also be called with a syntax like
y=fun1(x1=33,y='foo'). In such a case the
yvariable will be available in the context of the function
fun1. Note that the maximum number of argument must be less or equal to the number of formal input argument used in the function syntax part.
It is possible to check for defined variables with the exists function.
When a function has no left hand side argument and is called only with character string arguments, the calling syntax may be simplified:
is equivalent to:
fun a toto 'a string'
Functions are Scilab objects (with type numbers 13 or 11). They and can be manipulated (built, saved, loaded, passed as arguments,..) as other variable types.
Collections of functions can be collected in libraries. Functions
which begin with
%foo) are often used to overload (see overloading
) operations or functions for new data type.
|<< function||Functions||genlib >>|