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
g
das kürzere von e oder f
s
Zeichenkette
%
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