Erste Schritte bei der Verwendung von Scilab
Wichtige Hinweise
|
Scilab benutzen
|

Bild 0-1: Icon zum Start von Scilab vom Desktop aus.

Bild 0-2: Aufruf von Scilab von der Konsole aus.
Scilab-Konsole
|

Bild 0-3: Eingabe und Ausführung von Scilab-Befehlen in die Scilab-Konsole.
Allgemeine Steuerbefehle für die Konsole
Funktion | Beschreibung |
---|---|
help | Öffnet die Scilab-Hilfe |
help SCILABBEFEHL | Öffnet die Hilfe für einen bestimmten Scilab-Befehl / eine bestimmte Scilab-Funktion |
plot | Grafische Darstellung einer Wertetabelle, Beispiel: plot([-3,-2,-1,0,1,2,3],[9,4,1,0,1,4,9]) |
scicos | Aufruf der Grafischen Programmieroberfläche (Programmieren mit Blockdiagrammen) |
who | Ausgabe aller zur Zeit exisitierenden Variablen |
clear | Löscht alle Varaiblen |
cd PFAD | In ein bestimmtes Verzeichnis gehen (wird relevant, wenn man Daten abspeichern möchte, oder ein externes Skript ausführen will.) |
dir oder ls | Listet die Files im aktuellen Verzeichnis (Startverzeichnis: /root) auf. |
exec FILENAME | Führt Scilab-Befehle aus, die in einer Datei aufgelistet sind mit dem Namen FILENAME |
stacksize | Liefert den für Scilab reservierten Speicher und die maximale Anzahl definierbarer Variablen. |
stacksize(WERT) | Setzt den für Scilab reservierten Speicher auf WERT |
Tabelle 0-1: Allgemeine Steuerbefehle für die Konsole
Verarbeitung von Vektoren und Matrizen
|

Bild 0-4: Elementare Operatoren auf Matrizen angewendet
|
Funktionen zur Erzeugung spezieller Matrizen
Funktion | Beschreibung | Beispiel | Resultat |
---|---|---|---|
eye(m,n) | Einheitsmatrix, bzw. Matrix m(i,k) = 1 für i==k und 0 sonst | eye(2,3) | [1,0,0;0,1,0] |
zeros(m,n) | Nullmatrix, bzw. Matrix m(i,k) = 0 für alle i,k | zeros(3,2) | [0,0;0,0;0,0] |
ones(m,n) | Einsermatrix, bzw. Matrix m(i,k) = 1 für alle i,k | ones(3,2) | [1,1;1,1;1,1] |
rand(m,n) | Matrix mit Gauss verteilten Zufallszahlen zwischen im Intervall [0,1] | rad(2,2) | [0.2638578,0.5376230;0.5253563,0.1199926] |
Tabelle 0-2: Funktionen zur Erzeugung spezieller Matrizen
Elementare Matrizenfunktionen
Funktion | Beschreibung | Beispiel | Resultat |
---|---|---|---|
' | Hochkomma bildet die Transponierte einer Matrix | [1,2;3,4]' | [1,3;2,4] |
inv(A) | Inverse einer Matrix bilden | inv([0,1;2,3]) | [-1.5,0.5;1.0,0.0] |
size(A) | Anzahl der Zeilen und Spalten in einem Zeilenvektor speichern | size([1,2,3;4,5,6]) | [2,3] |
diag(A) | Diagonale als Zeilenvektor aus einer Matrix herausgreifen | diag([1,2;3,4]) | [1,4] |
int(A) | Nachkommastellen abschneiden | int([1.7,2;3,4.3]) | [1,2;3,4] |
sign(A) | Matrixelemente werden -1, 0 oder 1, entsprechend Vorzeichen | sign([1,-2;0,3]) | [1,-1;0,1] |
floor(A) | Matrixelemente abrunden | floor(-1.2) | -2 |
ceil(A) | Matrixelemente aufrunden | ceil(-1.2) | -1 |
round(A) | Matrixelemente runden | round(-1.7) | -2 |
abs(A) | Absolutwert jedes Matrixelements bilden | abs([-3,1;-4,2]) | [3,1;4,2] |
modulo(A,x) | Modulodivision | modulo([8,3;1,15],3) | [2,0;1,0] |
Tabelle 0-3: Elementare Matrizenfunktionen
|
Vordefinierte Konstanten
In Scilab sind einige Konstanten vordefiniert. Besonders interessant ist die imaginäre Zahl %i, denn ein Matrixelement kann auch komplexwertig sein.
Vordefinierte Konstante | Beschreibung | Wert | |
---|---|---|---|
%pi | Kreiszahl | 3.1415927... | |
%e | Eulerzahl | 2.7182818... | |
%i | Wurzel aus Minus eins | i | |
Tabelle 0-4: Vordefinierte Konstanten
Funktion | Beschreibung | Beispiel | Resultat |
---|---|---|---|
%i | Wurzel aus Minus eins | a=%i | a=i |
%i*%i | Wurzel aus Minus eins im Quadrat | a=%i*%i | a=-1 |
a*%i+b | Bildung einer komplexen Zahl | x=2*%i+3 | a=3+2i |
Tabelle 0-5: Umgang mit imaginären und komplexen Zahlen.
Kontrollstrukturen
Kontrollstrukturen sind Verzweigungen mit if...else... und Schleifen mit for... oder while...
Diese Art von Befehlen werden, wie alle Elemente der Skriptsprache, relativ langsam abgearbeitet.
Deshalb sollte man sie wenn möglich durch schnellere Scilab-Funktionen oder Vektoroperationen ersetzen.
Will man beispielsweise ein Array a mit 1000 Elementen mit Null initialisieren, so ist es geschickter und einfacher
a= zeros(1,1000);
zu schreiben, anstatt eine Schleife hierzu zu bilden. Manchmal sind aber Schleifen nicht vermeidbar.
Oft kann man aber durch Verwendung eines Iterator-Ausdrucks der Form a:b:c auf Schleifen verzichten. a ist dabei Startwert, b Schrittweite und c Abbruchwert.
Funktion | Beschreibung | Beispiel | Resultat |
---|---|---|---|
a:b | In Einerschritten von a nach b iterieren | x=1:5 | x=[1,2,3,4,5] |
a:b:c | Mit Schrittweite b von a nach c iterieren | x=2:-0.5:0.3 | x=[2,1.5,1.0,0.5] |
a:b:c | Noch ein Beispiel | A=[1:3;3:-1:1] | A=[1,2,3;3,2,1] |
linspace(a,b,n) | n Äquidistante Schritte in [a,b] | x=linspace(0,1,6) | x=[0,0.2,0.4,0.6,0.8,1.0] |
Tabelle 0-6: Ausdrücke mit Iteratoren.

Bild 0-5: Verwendung der for und der while - Schleife
|
|
Die Verwendung von bedingten Verzweigungen setzt voraus, dass logische Operatoren zur Verfügung stehen, mit denen die Verzweigungsbedingugen formuliert werden können.
Operator(en) | Beschreibung |
---|---|
~ | Logisches NICHT |
& | Logisches UND |
| | Logisches ODER |
%t | Boolscher Wert WAHR / true |
%f | Boolscher Wert FALSCH / false |
==,<,>,>=,<= | Vergleichsoperatoren |
Tabelle 0-7: Logische Operatoren

Bild 0-6: Verwendung von bedingten Verzweigungen.