Useful Functions
For the full monty, look at the online doc!Interactive: disp who whos help apropos disp
I/O: exec mopen mclose mgetl fscanf fprintf error warning
Cave:getl cuts lines after 4096 chars.
Libraries: genlib
Graphics: xinit xend xset xgrid xtitle/titlepage xstring/xstringl xclear/xbasc hotcolormap plot2d contour2d grayplot plot3d plot3d1 geom3d matplot locate driver
Strings: length xegrep strcat strindex stripblanks strsubst tokens part evstr execstr
Statistics: correl/covar geomean ftest mean/median center regress variance functions size typeof union intersect isdef exists contr
Elementary math: log cos sin diag max/min prod round/int/floor/ceil sign sqrt sum rand fft
Sorting: gsort sort empty eye matrix ones zeros expm trianfml
Linear algebra: inv bdiag spec schur syslin xdscr ss2tf
Polynomials: coeff freq horner poly roots
Spline: interp interpln
ODE Solvers: dassl odedc
Optimisation: optim quapro linpro lmitool
Environment
scilab.star contains the general init file for loading default libs etc .sclilab in your home dir can contain further initialisation code
Interactive
^-C // pause ... // line continues on next ; // separate commands in line ... // and supress output if at end [return] // eval and print who // list vars whos() // more detailed help // online help help('fname') // ... about function fname apropos('name') // help on anything named like name resume // resume after pause pause // new env inheriting vars; return vars with return unix_s('cmds') // execute cmds in unix shell unix_w('cmds') // execute cmds in unix shell, write output to window write('name', x) // write object x to file clear // clear env clear('name') // clear var name lib // load lib disp(name) // show functions in lib, call syntax for func link('file.o', 'name', 'C') // link in external C code call() // call linked code xset() // panel to mod display settings save('name') // save vars/env to binary file load('name') // save vars/env from binary file write('fname', o) // write o to file fname read('fname',2,3) // read part of matrux stored in fname mopen('fname','w')// open handle to filr fname for write mfprintf(fd, 'format', o) // printf to filehandle fh x=mfscanf(fd, 'format') // scanf from filehandle fh mclose(fd) // close file handle deff('[x]=fact(n)', 'if n==0 then x=1, else x=n*fact(n-1), end') //function def
Scope
All variables not defined in a function are considered global. Functions are objects that can be given as args to other functions.Literals
Scalars are constants, booleans, polynomials and their quotients and strings. They can be used as elements in matrices. 'Hi' or "World" // String %t // true %f // false %pi // Pi %e // Euler's %i // sqrt(-1) %s // poly(0,'s'), polynomial p(s) w/ var s, roots(s) = 0 %eps // biggest number on machine %inf // infinity %nan // Not a Number [] // empty matrix, zero rows, cols %io(2) // scilab window output file handle SCI // path to scilab main directory
Syntax
Operators: // comment a = 7 // Assignment/Initialisation [1,2,3] // row vector [1;2;3] // col vector M' // transpose (or complex conjugate) row <=> col 0:0.1:1 // vector from 0 to 1 (inclusive) in 0.1 steps -(1:4) // vector from -1 to -4 in 1.0 steps * // scalar product + // element-wise addition, string concatenation - // element-wise substraction / // right division \ // left division ^ // exponent .* // element-wise multiplication ./ // element-wise division .^ // element-wise exponent .*. // kronecker product == // equals <> // not equal < > <= >= // smaller, greater, smaller or equal, greater or equal ~ // not & // and | // or Lists: elements can be mixed, lists, even matrices can be elements l = list('this',3,m,-(1:3)) // list. elems may be scalars, matrices, lists tl = tlist(['mylist','color',value], 'red', 3) //typed list aka hash l(3)(2) // dereferencing a subentry in list tl('color') // dereferencing a hash Matrices: all elements should have same type M = [a+1 2 3 0 0 atan(1) 5 9 -1] // constant matrix M = [p,1-z; 1,z*p] // polynomal matrix M = ['Hi','World'; 'Whats','Up?']// string matrix M2 = matrix(M,2,3) // create matrix x with elements of M and given dims M(2,3) // element in row 2 column 3 M(1,:) // extracting the first row M(:,$) // extracting the last column I=(1:3);M(I,:) // extracting the first three rows Hypermatrices: more than 2 dimensions M = hypermat([2,3,2],1:12) // filled 3-dimensional matrix M(2,2,2) // corner of hyper matrix M.dims // dimensions of hyper matrix M.entries // entries of hyper matrix Functions: exec('filename',-1) // load functions from file, -1 makes that it isnt echoed y = poly(0,'z') // function call vor variable z function [r1,...,rn]=name(p1,...,pn) //has to be 1st line in file ... endfunction argn // return number of input/output arguments error // print error and exit function warning pause return // return to calling env resume // ...and pass on local vars Control structures: for elem=vector/matrix/list, body, end while condition, body, end break // exits from innermost loop if condition then, if-body, else, else-body, end select var, case cond, case-body, case cond2, case-body2,...[,else, catchall-body],end