# Erste Schritte in Octave

# <-- so beginnt ein Kommentar. Alles ab diesem Zeichen bis zum Ende der Zeile wird nicht interpretiert

# Alles (ausser den Kommentaren) in dieser Datei ist zum Eintippen in die Octave-Konsole gedacht

# So sieht eine Variablendefinition aus 
x=2 # "x = 2" wird auf der Konsole ausgegeben und ist ein Ausdruck mit dem Wert 2
# Zum Vergleich
y=2; # y wird der Wert 2 zugewiesen, ohne dass etwas auf der Konsole ausgegeben wird. Hierbei handelt es sich um einen Ausdruck

# Ein paar Beispielrechnungen

z= x+y
z= x/y
z= 2^(x+y)
z= pi; #pi ist eine vordefinierte Konstante in Octave (so wie auch "e", "i",...)
z
z= z+2 # Erst wird die rechte Seite berechnert, also z gelesen und um 2 erhöht. Dann wird dieses Ergebnis in der Variable z gespeichert. Der alte Wert von z ist nicht mehr im Speicher!

# nützlich, wenns mal wieder länger dauert: ...
z= 2+3+4+5+...
6 # Man beachte das geänderte Prompt ">" der Komandozeile, was uns zeigt, dass Octave nach Input verlangt

# Vektoren und Matrizen definieren
# Liegender Vektor
v= [ 1 2 3] # v= [1,2,3]
# Stehend
w= [ 4; 5; 6; 7]
# Sehr nützlich
u= 4:7 # Zahlen von 4 bis 7 in 1er Schritten
u= 4:0.5:7 # Schrittweite = 0.5

# Matrizen
A = [1 2 3; 4 5 6; 7 8 9]
# Nützlich: eingebaute Funktionen
B= ones(2,3) # Nur 1sen
C= zeros(3,4) # Nur 0en
D= rand(2,2) # Zufallszahlen
E= eye(3) # Einheitsmatrix
# Man sollte auch mal ones(2), zeros(4), rand(2) oder eye(4,3) ausprobieren

# Zugriff auf einzelne Matrixelemente
A(2,3) = 4
# Zugriff auf Spalten und Zeilen
A(:,1)
A(2,:)

# Transponieren
v'
A'

# Matrix-Vektor-Multiplikation
C*w
A*v'
v'*v

# Wenn die Dimensionen stimmen, kann man auch mal +,- ausprobieren
# Komponentenweise Operatoren
2*A
A.*2
A.*A
A./A
A.^A
A^2
A.^2

# Könnte wichtig sein:
sqrt(2)

# Die for-Schleife

x=0;
for i=0:100 #<-- also i=0,1,2,...,100
	x=x+(0.5)^i;
endfor
x #<-- hier sollte jetzt eine 2 ausgegeben werden

# Tippt mal "basics", also den Namen dieser Datei ohne ".m" in Octave ein. Es werden alle Befehle in dieser Datei hintereinander ausgeführt. Das wird später sehr nützlich!

# Mit Strg+c könnt ihr Octave aus einer Endlosschleife holen. So eine kriegt man zB. wenn man das Kommentarzeichen in folgender Zeile löscht und danach in octave "basics" tippt (und diese Datei sollte im Verzeichnis sein)
# basics

# Hier noch ein paar der grundlegendsten Befehle:
# help (einfach "help BEFEHL" tippen und man erhält Informationen zu dem Befehl. Zum Beispiel "help norm"
# doc (ausführlicher als "help". Raus kommt ihr mit "q")
# pwd (print working directory), cd (change directory), ls (zeigt den Inhalt des aktuellen Verzeichnis an)
# who, whos, whos -variables (um den Überblick über die Variablen zu behalten)
# size, length, norm, sqrt, ...
# quit, exit (beenden octave)
