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

Datei mit den Datentypen strings und double beschreiben!

 

Edi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2008, 17:12     Titel: Datei mit den Datentypen strings und double beschreiben!
  Antworten mit Zitat      
Hallo ich hab ein recht einfaches Problem komm aber grad nicht drauf.

Ich will eine datei mit folgendem Aufbau erzeugen:

text

1
2 ( Spaltenvektor )
3

text

4
5 ( Spaltenvektor )
6

text


Ich hab die jeweiligen Komponten als double bzw. string gespeichert weis aber nicht wie ich sie zusammen kombinieren kann und dann speichern kann ( mit dat. Dateiendung wenns es geht).

Ich wär für jede Hilfe dankbar Wink


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 19.11.2008, 12:23     Titel:
  Antworten mit Zitat      
Hallo Edi,

schau Dir mal dieses Beispiel und die damit erzeugte Datei neu.dat an.

Code:
f=fopen('neu.dat','w');
fprintf(f,'neu\n\n');
fprintf(f,'%f\n',[1 2]);
fclose(f);


\n steht dabei für eine neue Zeile. Wenn Du an einen fertigen Text str noch Leerzeilen anhängen willst, feht das beispielsweise so:

Code:
fprintf(f,[str '\n\n']);


Es gibt auch noch Möglichkeiten (siehe unter fprintf in der Hilfe) die Darstellung der numerischen Werte anzupassen.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Surfer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2011, 12:15     Titel:
  Antworten mit Zitat      
Hallo!

Ich hab eine ähnliche Frage: bei mir handelt es sich aber um Spalten!
Ich habe eine txt-Datei in Matlab importiert. Dabei splittet MATLAB die Daten in Data und textdata auf. Halb so schlimm, denn ich habe meine Berechnungen mit den Werten gemacht, möchte jetzt aber als Output wieder eine kombinierte txt-Datei als Ergebnis haben.

ich geb mal ein Beispiel:
-textdata:

CC-R ff ff1 ff2 ff3 ff4 description
2-5 good
3-8 bad
5-9 very good

In die Spalten 2:6 sollen die errechneten werte aus ff_calc eingetragen werden:

ff_calc=[2 3 5 5 8; 1 6 6 8 9; 0 1 1 3 1; 4 5 8 1 7; 7.9 5.5 8.3 2.8 9.9]';

ich habs jetzt schon mal mit fprintf probiert

Code:
f=fopen('neu.dat','w');
fprintf(f,'CC-R\t ff\t ff1\t ff2\t ff3\t ff4\t description\t\n');
fprintf(f,'%s%d%d%d%d%d%.3f\n',ff_calc,textdata);
fclose(f);


aber da gibts probleme beim Einfügen der strings...wie macht man das am cleversten?

Grüße
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.01.2011, 17:51     Titel:
  Antworten mit Zitat      
Hallo
1) FF_CALC ist doch 5x5 große Matrix, du erwartest aber bei FPRINTF 6 Zahlen

2) gleichzeitige Ausgabe von Cellstring und Zahlenmatrix über FPRINTF
ist einfacher über FOR-Schleife

Code:

ff_calc=[2 3 5 5 8; 1 6 6 8 9; 0 1 1 3 1; 4 5 8 1 7; 7.9 5.5 8.3 2.8 9.9]';

textdata= {'good','bad','very good','moot','excellent'}'

f=fopen('neu.dat','w');
fprintf(f,'CC-R\t ff\t ff1\t ff2\t ff3\t ff4\t description\t\n');

for k=1:size(ff_calc,1)
  fprintf(f,'%d\t%d\t%d\t%d\t%.3f\t',ff_calc(k,:));
  fprintf(f,'%s\t\n',textdata{k});
end
fclose(f);

 




oder so:
Code:

ff_calc=[2 3 5 5 8; 1 6 6 8 9; 0 1 1 3 1; 4 5 8 1 7; 7.9 5.5 8.3 2.8 9.9]';

textdata= {'good','bad','very good','moot','excellent'}'

f=fopen('neu.dat','w');
fprintf(f,'CC-R\t ff\t ff1\t ff2\t ff3\t ff4\t description\t\n');

zahlstr = sprintf('%d\t%d\t%d\t%d\t%.3f\t\n',ff_calc');
zahlstr = regexp(zahlstr,'\n','split')';
zahlstr = zahlstr(1:end-1);
newdata= strcat(zahlstr, textdata)
fprintf(f,'%s\t\n',newdata{:})
fclose(f);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Surfer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2011, 15:49     Titel:
  Antworten mit Zitat      
Danke Denny!

Die erste Spalte sollte zwar auch ein String werden, aber ich hab das in der Schleifenkonstruktion, die sehr einleuchtend ist, mal abgeändert:

Code:

f=fopen('neu2.dat','w');
fprintf(f,'CC-R\t ff\t ff1\t ff2\t ff3\t ff4\t description\t\n');
for k=1:size(ff_calc,1)
  fprintf(f,'%s\t',textdata2{k});
  fprintf(f,'%d\t%d\t%d\t%d\t%.3f\t',ff_calc(k,:));
  fprintf(f,'%s\t\n',textdata{k});
end
fclose(f);


Cool, danke!
 
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.