Hallo, ich habe Probleme mit der verwendung von fprintf
ich habe als ergebnisse meiner rechnungen eine reihe von vektoren, die alle gleich lang sind aber einer unterschiedlichen formatierung (für werte wie dicke, geschwindigkeit, drehzahlen etc) bedürften. Das wollte ich übersichtlich in einer textdatei darstellen. Allerdings komme ich bisher mit fprintf auf keinen grünen zweig. HAt jemand eine gute anleitung wie man diese funktion benutzt? Ich verstehe nicht richtig wie man das ganze formatiert und was die "format" marker in dem dem fprintf folgenden teil bewirken.
Die Vektoren beinhalten die oben angesprochenen werte die jeweils zusammengehören und daher auch in spalten untereinander stehen sollten. Wie kann ich das nun so formatieren, dass ich eine ordentlich aussehende tabelle bekomme?
Du siehst im Vergleich, dass die Datei zwei Spalten hat, während y zwei Zeilen und 11 Spalten hat.
Die Anweisung %6.2f steht für die erste Zahl der zu erzeugenden Zeile, dieses soll mit 6 Vor- und 2 Nachkommastellen darstellen. Die Anweisung %12.8f steht analog für die zweite Zahl der zu erzeugenden Zeile und hat 12 Vor- und 8 Nachkommastellen. \n letztlich erzeugt einen Zeilenumbruch, im Beispiel nach jeder zweiten Zahl. Das ganze steht in Hochkommas, weil ein Format-String übergeben werden soll.
fid steht für die File-ID und y für die Matrix, die gespeichert werden soll.
Jetzt musst Du noch wissen, dass Matlab jede Matrix sowohl via matrix(zeile, spalte) als auch via matrix(elementnummer) ansprechen kann, was die Auflistung
y(1) == y(1,1)
y(2) == y(2,1)
y(3) == y(1,2)
y(4) == y(2,2)
y(5) == y(1,3)
verdeutlichen soll.
Entsprechend kannst Du nun Deine Spalten mittels
Code:
matrix = [lauf, ldif, dx, n, ndif]; % zusammenfügen in einer Matrix !Beachte identische Längen!,
fid = fopen('deine_datei.txt','w'); % Datei anlegen bzw. öffnen, fprintf(fid, '%1.6f %3.4f %3.4f %3.4f %3.4f \n', matrix); % Formatangaben, fclose(fid); % Datei schließen
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.