WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Header + Matrix in txt Datei schreiben

 

Gast0009

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2013, 20:08     Titel: Header + Matrix in txt Datei schreiben
  Antworten mit Zitat      
Hallo zusammen,

ich bin noch ziemlicher Matlabneuling.
Ich bin nun soweit, dass ich eine Matrix erstellt hab und den zugehörigen header.

Das ganze sieht in etwa so aus:

Code:
header = {von bis langerName bla}
M = [1 2 0.3432 0.2324; 1 5 0.2322 0.1111]


Leider hab ich nun keine Idee wie ich das ganze in eine txt-Datei schreiben soll, in der auch noch die Formatierung (die entsprechenden Zahlen sollen auch exakt unter dem Spaltennamen stehen) gut aussieht.
Spaltenanzahl sowie -name können je nach Eingabe variieren.

Ich hoffe ihr könnt mir weiterhelfen. Vielen Dank schonmal!


Paul_87
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 20.06.13
Wohnort: Oz
Version: ---
     Beitrag Verfasst am: 19.08.2013, 22:28     Titel:
  Antworten mit Zitat      
Dein Header ist nicht besonders klar.

Um Variablen in ein Textfile zu schreiben muesstest zunaechst das file anlegen und dann im write modus oeffnen. Stichwort fopen

Google mal noch ein bisschen, dazu gibt es viele Beispiele online.

Eine Matrix sollte sich ganz sauber und ohne Schwierigkeiten eintragen lassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.08.2013, 22:30     Titel:
  Antworten mit Zitat      
Hallo,

Code:

liefert alle benötigten Informationen. Achte insbesondere auf die Formatierungsstrings.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast0009

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2013, 18:27     Titel:
  Antworten mit Zitat      
Hallo,

also das mit mit dem Header und Matrix in eine Datei schreiben hab ich jetzt einigermaßen hinbekommen.
Allerdings sieht die Formatierung ziemlich schlecht aus. Hier mal mein Code:

Code:
fd = fopen('messungen.lst', 'w');
fprintf(fd, ' %s\t', header{1:anz_m});
fprintf(fd, '\n %d \t %d \t%+.4f \t%+.4f \t', messwerte');


Problem ist auch, dass das ganze nur für eine Matrix mit 4 Spalten funktioniert. Wie könnte ich das ganze erweitern auf x-beliebige Spalten?
Teilweise kann es auch vorkommen das ein Spaltenname so lang ist, dass ein einzelner Tab nicht ausreicht für die Formatierung. Gibt es hierfür auch eine (automatische) Lösung?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.08.2013, 21:13     Titel:
  Antworten mit Zitat      
Hallo,

Du kannst einen Formatstring mit repmat mehrfach kopieren.

Ich würde nicht in erster Linie mit Tabulatoren arbeiten, sondern mit der Feldbreite. Die kannst du ja über den Formatstring beeinflussen.

Beispiel:
Code:
header = {'von' 'bis' 'langerName' 'bla'};
M = [1 2 0.3432 0.2324; 1 5 0.2322 0.1111];
fl = num2str(max([20, cellfun(@length, header)]));
fd = fopen('messungen.lst', 'w');
fprintf(fd, ['%' fl, 's\t'], header{:});
fprintf(fd, ['\n %' fl 'd \t %' fl 'd ' repmat(['\t%+' fl '.4f'], 1, size(M,2)-2)], M');
fclose(fd);
type('messungen.lst')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast0009

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2013, 11:44     Titel:
  Antworten mit Zitat      
Super, genau das hab ich gesucht.
Vielen Dank!
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.