## Matlab

Different alternatives to the closed source matlab exist

### Scilab

Scilab from http://www.scilab.org/is an alternative to the commercial matlab. Scilab it is a free open source software with a GPL compatible license it is quite accepted by educational institutions. It is quite complex therefore tutorials as found under https://www.scilab.org/tutorials or http://www.openeering.com/scilab_tutorials are a good point to start, or the wiki http://wiki.scilab.org/ or read matlab documents since it is quite the same. There is also Xcos that allows to simulate electrical circuitries.

Gentoo portage has a old version but the science overlay has newer versions as eix scilab shows (dev-java/flexdock-1.2.0 instead of 1.1.1 needs to get emerged). Alternatively there is scilab-bin the 64bit binary version in the gentoo-el overlay.

matlab means matrix laboratory and makes therefore clear that it deals with matrices. The following deals with scilab and might be different to matlab. In the scilab shell commands can be typed in as to create variables: a = [1 2 3 4] or a = [1 2 3; 4 5 6; 7 8 10] are matrices (or arrays). scilab has also other data types as strings: s = 'Hello world' or simply numbers i=5. Typing commands into the console will echo back the results, this can be suppressed using the ; character at the end. The variables can be saved in to a file by save `<filename>` and in restores in the session with load `<filename>`. disp('hello world'); is the hello world clc clears the screen. pi = 3.1415926 (scilab does not understand pi without this) and then creates a matrix with a generator call x = 0:pi/100:2*pi; type x to see the result. y = sin(x); creates a new matrix and plot(x,y) pops up a window with the function. [X,Y] = meshgrid(-2:.2:2); Z = X .* exp(-X.^2 - Y.^2);surf(X,Y,Z) will create a 3D output:

Figure 15.3. scilab The commands can be written into a file, for matlab those files have a .m extension scilab uses .sci extension. Matlab .m files can be imported into scilab and converted in .sci files. Usually the conversion just adds a couple of extra commands at the beginning.

### Octave   