Ein- und Ausgabe
Ausgabe ins Kommandofenster mit
fprintf
:
einfacher Text
fprintf('Hallo Peter')
erzeugt keine neue Zeile, besser mit zusätzlichem Newline-Zeichen
fprintf('Hallo Peter\n')
Ausgabe von Variablen durch Typbezeichner (
Conversion character
)
fprintf('Zwei mal Drei sind %d\n', 2*3)
fprintf('pi = %f, und zum Quadrat: %f\n', pi, pi^2)
einige wichtige Bezeichner
Typzeichner
Verwendung
d
ganze Zahl
x
ganze Zahl, hexadezimal
f
reelle Zahl mit Dezimalpunkt
e
reelle Zahl in Exponential-Schreibweise
s
Zeichenkette
c
einzelner Buchstabe
%
Prozentzeichen
gewünschte Stellen mit
%n.mf
bzw.
%nd
m = Zahl der Nachkommastellen
n = Zahl der Zeichen (incl. Vorzeichen und Dezimalpunkt!)
fprintf('%5d\n%5d\n%5d\n%5d\n', 2^5, 2^10, 2^15, 2^20)
fprintf('pi = %12.8f\n', pi)
Angabe von Vektoren oder Matrizen → Formatstring wird wiederholt angewandt
v1 = 1:10; fprintf('%f, %f\n', v1);
v2 = 1:2:10; fprintf('%f, %f\n', v2);
Reihenfolge der Elemente bei Matrizen spaltenweise!
A = [1, 2, 3; 4, 5, 6]
fprintf('%4.2f %4.2f\n', A)
fprintf('%4.2f %4.2f %4.2f\n', A')
Eingabe vom Kommandofenster mit
input
:
Beispiel
>> t = input('Zahl zwischen 1 und 10 eingeben: ')
Zahl zwischen 1 und 10 eingeben: 7
t = 7
Zeichenketten in der Eingabe in
'..'
einschließen
>> s = input('Wie heißt Du? ')
Wie heißt Du? 'Peter'
s = Peter
Arbeiten mit Dateien:
grundsätzliche Vorgehensweise
Datei öffnen
Datei lesen oder schreiben
Datei schließen
Datei öffnen
zum Lesen:
fid = fopen(filename, 'r');
zum Schreiben:
fid = fopen(filename, 'w');
zum Lesen und Schreiben:
fid = fopen(filename, 'r+');
Filezeiger
fid
bei Lese-/Schreiboperationen angeben
in geöffnete Datei schreiben
fprintf(fid, Formatstring, Variablen)
am Ende Datei schließen
fclose(fid)
Lesen aus einer Datei:
nächste Zeile (bis zum Newline) aus der Datei holen
line = fgetl(fid);
line
enthält das Newline-Zeichen am Ende nicht!
Daten einzeln lesen
mass = fscanf(fid, '%f');
Formatstring wie in
fprintf
Vektor einlesen
dims = fscanf(fid, '%d %d\n', 2);
holt zwei ganze Zahlen aus einer (kompletten) Zeile und speichert in Vektor
dims
der Länge 2
Array einlesen
x0 = fscanf(fid, '%f', [2,6]);
holt 12 Fließkommazahlen und speichert sie in Array
x0
mit 2 Zeilen und 6 Spalten
Speichern und Laden eines Fachwerks:
Fachwerkdaten speichern
als ASCII-Daten in
NAME.truss
mit zusätzlichen Infos in der Datei
Beispiel-Fachwerk in
bruecke.truss
Routine
saveTruss1
zum Abspeichern
Routine
loadTruss1
zum Laden
Aufgaben:
Aufgabe 8