%% Vektoren I (Wdh)
%
% - Zeilenvektoren: Trennungszeichen ","
%
% - Spaltenvektoren: Trennungszeichen ";"
%
clc
z = [23, 11, 7, 9]
s = [23; 11; 7; 9]
whos

%% Vektoren II: Transponieren (Wdh)
%
% - Transponieren und konjugieren mit "'"
%
% - Transponieren ohne konjugieren mit ".'"
%
v = [1+sqrt(-1), 3-2*sqrt(-1)]
v'
v.'
v''

%% Vektoren III: Automatische Erzeugung (Wdh)
%
% - Erzeugung von Zahlenfolgen "anfang:inkrement:ende"
%
% - linspace(A,B,N): Aequidistante Zerteilung des Intervalls [A,B] in N Punkten
%
u = 1:10
w = 1:2:10
W = 10:-2:1
t = linspace(0,1,7)
dt = 1/6;
tt = 0:dt:1
t - tt
%% Vektoren IV: Einfache Funktionen (Wdh)
%
% - length(x): Laenge des Vektors x
%
% - size(x): Dimensionen des Vektors x (Ergebnis ist wieder ein Vektor mit
%   Eintraegen Anzahl Zeilen von x und Anzahl Spalten von x)
%
clc
length(z)
length(s)
size(z)
size(ans)
whos
who
%% Vektoren V: Zugriff auf Eintraege
%
g = w(3) + W(2)
w(3)
W(2)
t(end)
t(end-1)
w(2:end-1)
w([1 4 5])
clc

a=1:4
b=linspace(3,6,4)

%% Rechnen mit Vektoren VI
% 
% Elementweise Operationen .*, ./, .^
a.*b
a./b
a.\b
a.^3
a.^b

%% Vektoren VII: Lineare Algebra VII
% Vektoren koennen nur addiert werden, wenn sie die gleiche Laenge haben
% Skalarmultiplikation *
c = linspace(4,11,6)
%a+c
a + b
alpha = 1i
alpha*c

%% Rechnen mit Vektoren VIII
%
clc
x = 2:5, y = 4:7

x.^2-x.*x

norm(x)
sqrt(sum(x.^2))

norm(x,inf)
max(x)

z=x+3i*y
(y+j).^2  %was ist das?

%% Vektoren IX: Funktionen
% Norm eines Vektors 
% Groesster und kleinster Eintrag eines Vektors
norm(a)
help norm
max(a,inf)
norm(a,inf)
max(a)
help
help find

%% Vergleichen von Vektoren; Suchen von Elementen in Vektoren 
%
% find
%
clc
v<3
v~=3

w =3:9

index = find(w<=5)
w(index) = -2*w(index)

%% Logische Operationen
% Variablentyp: Wahrheitswert
% true(=1) oder false(=0)
% Logisches und &&
% Logisches oder ||
% Vergleiche liefern Wahrheitswert 1 oder 0
clc
f = false
t = true
f || t
f && t
a > c
a > b
a
b
find(a > b)

%% Matrizen I: Erzeugung
% Wie Vektoren koennen Matrizen elementweise angegeben werden
% Separator fuer Zeileneintraege ,
% Separator fuer Spalenumbruch ;
clc
z = [1 , 2]
v = [1 ; 2]
A = [1 , 2 ; 3 , 4]
who
whos

%% Matrizen II: Spezielle Matrizen
% Nullmatrix, Einheitsmatrix, Matrix mit zufaelligen Eintraegen
N = zeros(2,2)
E = eye(2,2)
Y = eye(4,2)
E = diag([1 1 3 1])
H = diag([1 1 3 1],2)
B = rand(2)

%% Matrizen III: Zugriff auf Matrizen
% Zugriff wie bei Vektoren
% A(Zeilenindex,Spaltenindex)
E(1,1) = 2

%% Matrizen IV: Funktionen fuer Matrixdatentyp
% Groesse der Matrix
% Anzahl Elemente
% Anzahl der Nicht-Nullen
size(E)
whos
numel(E)
nnz(E)

%% Matrizen V: Elementweise Operationen
% Wie bei Vektoren
% .* , ./ , .^
A.*B
A./B
A.^B

%% Matrizen VI: Lineare Algebra
% Matrizenaddition +
% Matrix-Vektor Multiplikation * (Dimensionen beachten!)
% Matrix-Matrix Multiplikation * (Dimensionen beachten!)
A+B
A
x = [1;2]
A*x
B
A*B
F = rand(3,2)
G = ones(2,7)
F*G
G*F


