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

Matrix mit unterschiedlichem Spaltenabstand als Textdatei

 

lxm
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 02.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2014, 15:12     Titel: Matrix mit unterschiedlichem Spaltenabstand als Textdatei
  Antworten mit Zitat      
Hallo liebe Mitglieder,
Ich habe folgendes Problem:
Ich habe eine Matrix mit den Spalten Tag, Monat, Jahr und Abfluss.
Nun möchte ich die Datei in ein Textfile übertragen.
Die erste Spalte mit 8 Spaces vom linken Rand. Dann die 2te Spalte mit 8 Spaces von der ersten Spalte, dann 4 Spaces Abstand und dann 3 Spaces.
So soll das ganze mal aussehen:

24 06 1965 1820
24 07 1966 1950
27 06 1967 1380
07 06 1968 1020
08 07 1969 756
10 08 1970 2030
27 08 1971 793

Wichtig dabei ist, dass in der ersten und zweiten Spalte eine 8 als 08 dargestellt wird!

Danke für die Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.06.2014, 15:59     Titel:
  Antworten mit Zitat      
Hallo

so z.B

Code:

A=[24 06 1965 1820;24 07 1966 1950;27 06 1967 1380;07 06 1968 1020;08 07 1969 756;10 08 1970 2030;27 08 1971 793];

% Ausgabe Format vorbereiten
frmt = sprintf('%s%%02d%s%%02d%s%%04d%s%%-d\n',blanks(8),blanks(8),blanks(4),blanks(3));

fid= fopen('test.txt','wt+');
%
% Ausgabe der Matrix in TXT
fprintf(fid, frmt, A');
fclose(fid);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
lxm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 02.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2014, 17:23     Titel:
  Antworten mit Zitat      
wow, funktioniert super!
Nur eine Sache noch: momentan sieht mein Ergebnis so aus:

01 11 1950 2.42e+00
01 06 1951 1.04e+01
01 07 1952 6.09e+00
01 07 1953 9.33e+00
01 07 1954 2.37e+01
01 07 1955 2.85e+01

Alle Abstände passen, nur werden mir die Abflüsse immer noch in exponentialer Notation angezeigt. Das sollte eigentlich nicht sein da du ja %-d geschrieben hast. Habe die Ausgabe auf zwei Dezimalen nach dem Komma gekürzt.

Code:
frmt = sprintf('%s%%02d%s%%02d%s%%04d%s%%-3.2d\n',blanks(8),blanks(8),blanks(4),blanks(3));
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.06.2014, 17:37     Titel:
  Antworten mit Zitat      
Hallo

ich kannte ja das Format deiner letzten Spalte nicht. Scheinbar sind dort Floats?

Also statt %d %f verwenden
Code:

frmt = sprintf('%s%%02d%s%%02d%s%%04d%s%%-3.2f\n',blanks(8),blanks(8),blanks(4),blanks(3));
 
Private Nachricht senden Benutzer-Profile anzeigen
 
lxm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 02.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2014, 18:21     Titel:
  Antworten mit Zitat      
Funktioniert super !
Danke für die schnelle Hilfe Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
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.