%% Elementare MATLAB Befehle
% Loeschen des Command-Windows
clc;

% --------------------------------
% Eingabe
%Masse = input('Gib die Masse (kg) ein:');  % Dies erst ausfuehren,
                                            % dann kommentarisieren
Masse = 3.4556;

% --------------------------------
% Einfache Ausgabe
disp(' Die Masse ist: ')
disp(Masse);

% Formatierte Ausgabe
fprintf('Besser formatiert ist die Masse=%12.5e! Wow! \n', Masse);

% Formatierte Ausgabe in eine Datei
fptr=fopen('dummy.txt','w');
fprintf(fptr,'Besser formatiert ist die Masse=%12.5e! Wow! \n', Masse);
fclose(fptr);

% Ausgabe von Daten in eine Datei
Variable1 = 1;
Variable2 = 2;
fptr=fopen('Daten.txt','w');
fprintf(fptr,'%d \n', Variable1);
fprintf(fptr,'%d \n', Variable2);
fclose(fptr);

% Wiedereinlesen der Daten von einer Datei
fptr=fopen('Daten.txt','r');
Variable3 = fscanf(fptr,'%d',1)
Variable4 = fscanf(fptr,'%d',1)
fclose(fptr);

% --------------------------------
% Zuweisung
a = 5
b = 3
c = a+b
c = a/b

% --------------------------------
% Bedeutung Semikolon am Ende eines Befehls => kein Prompt
c=3*a+5*b;

% --------------------------------
% Konstanten
a = 3*pi

% --------------------------------
% Definition von Vektoren und Matrizen

% Definition eines Zeilenvektors
a = [1 4 7 1 83]

% Definition eines Spaltenvektors (folgende Definitionen sind all gleich)
b = [1;
     4;
     7;
     1;
     83]

 b = [1;      4;     7;     1;     83]

 b = [1      4     7     1     83]'


% Definition einer Matrix  (folgende Definitionen sind all gleich)
A = [ 2 2 1;  
      4 5 6;
      9 8 7]

A = [ 2 2 1;  4 5 6;  9 8 7]

% Zeige Array Editor!!

% --------------------------------
% Operationen mit Matrizen (Achtung Dimension)
B = 3*A
C = A+B
C = A/B
C = A^2          % C = A*A
C = A.^2         % C ist die Matrix der quadrierten Elemente von A
%C = A + b       % Fehler - dies erst ausfuehren, dann kommentarisieren

% --------------------------------
% Loesen von linearen Gleichungen (linkseitige Division)
x = [1;2;1]      % dies ist der gesuchte Loesungsvektor von A*x = b
b = A*x          % Bestimmen der rechten Seite
y = A\b          % Naaa, bekommen wir das gleiche heraus wie x? Yeah!

% Loesen von linearen Gleichungen auch wenn Gleichung schlecht
% konditioniert ist, d.h. MATLAB hat hier einen recht 
% anspruchsvollen Algorithmus implementiert. 
A = [ 1 2 3;  4 5 6;  7 8 9];
d = det(A)       % Ooops ... die Determinante von A ist null. Problem!!!
b = A*x          % Bestimmen der rechten Seite
y = A\b          % Naaa, bekommen wir das gleiche heraus wie x? Nope!!
b2 = A*y         % Hey, die rechte Seite stimmt trotzdem

