Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Funktionsentwickler (w/m) Automobile
Entwicklung von modellbasierten Softwarelösungen in Simulink inklusive Autocode-Generierung
Bertrandt Ingenieurbüro GmbH - Frankfurt am Main

Software Entwicklungsingenieur (m/w) TargetLink
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Continental AG - Nürnberg

Gruppenleiter Entwicklung Algorithmik / Machine Vision (m/w)
Weiterentwicklung und Optimierung existierender Algorithmen
SICK AG - Reute bei Freiburg im Breisgau

Ingenieur (w/m) Qualitätssicherung der Werkzeugkette Virtuelle Validierung
Entwicklung und Optimierung von Use-Case-Szenarien für die Virtual-Validation-Werkzeugkette
dSPACE GmbH - Paderborn

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Problem Text in ASCII Format in bestehende Datei anfügen

 

Felix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2007, 22:21     Titel: Problem Text in ASCII Format in bestehende Datei anfügen
  Antworten mit Zitat      
Hallo,

ich habe ein Problem mit der Funktion fprintf.
Ich versuche eine ASCII Datei .txt zu erzeugen in die ich zwei Zeilen Text mit:

fid = fopen('temp.txt','wt+');
fprintf(fid,'%s\n',lineone)
fprintf(fid,'%s\n',linetwo)

einfüge. Daraufhin sollen mehrere Zeilen Daten folgen, die perfekt formatiert in:

save tempascii.txt temp -ascii

ausgegeben werden. Diese werden so für die Weiterverarbeitung mit einem anderen Programm formatiert und dürfen keinesfalls in der Formatierung geändert werden (drei Spalten voller Zahlenwerte, getrennt durch ein Leerzeichen).

Ich habe nun versucht sie mit
D = dlmread('tempascii.txt','')
dlmwrite('temp.txt', D, '-append')
einzufügen - ohne Erfolg! Ich hab auch schon probiert es mit fprintf einzufügen jedoch werden die Daten nicht wie mit save in den beschriebenen drei spalten und mit je einem Leerzeichen zwischen den enthaltenen Werten optimal gespeichert, sondern alles aneinandergeklatscht.
Kann mir jemand weiterhelfen - ich wurstel schon seit drei Tagen dran rum und bin am verzweifeln.
Ich bekomme den fertig formatierten Text einfach nicht drangehängt.
Grüße, Felix


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 11.10.2007, 10:34     Titel:
  Antworten mit Zitat      
Hallo

hier mein Vorschlag:

Code:
D = dlmread('tempascii.txt','')
fid = fopen('temp.txt','a');
fprintf(fid,'%s\n',lineone)
fprintf(fid,'%s\n',linetwo)
dlmwrite('temp.txt', D, '-append','delimiter',' ');
fclose(fid)
 


Die wesentlichen Unterschiede sind das Öffnen von temp.txt mit dem Parameter 'a' damit alles angehängt und nicht überschrieben wird, und die Angabe des 'Delimiter', also des Trennzeichens zwischen den Spalten, in Deinem Fall die Leerzeichen.

Grüße
Bijick
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2007, 18:38     Titel: Problem Text in ASCII Format in bestehende Datei anfügen
  Antworten mit Zitat      
Vielen Dank für die Antwort - funktioniert leider nicht so wie geplant...

Im Textfile sieht es so aus:

-1.0000e-001 -5.0000e-002 -1.5000e-009
-1.0000e-001 -1.0000e-001 -7.0000e-010
-1.0000e-001 -1.5000e-001 -3.2000e-010
usw.

mit
dlmwrite('temp.txt', D, '-append','delimiter',' ');
gibt die Ausgabe gibt leider folgendes aus:

-0.1 -0.05 -1.5e-009
-0.1 -0.1 -7e-010
-0.1 -0.15 -3.2e-010

Gibt es nicht evtl eine Funktion, auf die ich noch nicht gestoßen bin, mit der man einfach einen existierenden ASCII Text an eine andere ASCII Datei anhängen kann.
Es ist ja alles schon vorhanden und bis jetzt hat mir jede funktion meine Werte ausgegeben aber die formatierung verwurstelt.

Vielen Dank, Felix
 
Bijick
Ehrenmitglied

Ehrenmitglied



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

jetzt verstehe ich Dein Problem (glaub ich). Hier also mein neuer Vorschlag:

Code:

D = fscanf(fid,'%c',Inf);
fid = fopen('temp.txt','a');
fprintf(fid,'%s ',lineone)
fprintf(fid,'%s ',linetwo)
fprintf(fid,'%c',D);
fclose(fid)
 


Ist es das, was Du suchst? Herzliche Grüße
Bijick
_________________

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2007, 11:59     Titel:
  Antworten mit Zitat      
Das wärs sicherlich gewesen.
Ich hab mich jetz anders durchgeschlagen (mehrere Schleifen etc.) und es funktioniert super.
Trotz dem noch mal vielen Dank für die Hilfe!
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.