Verfasst am: 25.03.2014, 11:58
Titel: Hilfe bei fprintf (Leerzeichen entfernen)
Hallo ich hoffe ihr könnt mir helfen. Ich möchte ein .txt Dokument erstellen in dem ich per Schleife einen festen string-Bestandteil mit einem variablen float verbinden möchte. das ganze vier mal pro Zeile. Wobei ich die nachkommastellen bestimmen möchte. Zusätzlich brauche ich einmalig am Anfang und Ende des skriptes eine andere Zeile.
Mein Code lautet:
Code:
fid = fopen('SPLINE_TROP_XML.txt','wt');
fprintf(fid,'%s\n','<Matrix3 NameX1="TG" NameX2="TRIM" NameX3="V" NameY="POWER">') ;
for z=1:size(G3,1) fprintf(fid,'%s%6.2f%s%6.2f%s%6.2f%s%6.0f%s\n','<Point X1="',G3(z,1),'"X2="',G3(z,2),'"X3="',G3(z,3),'"Y="',G3(z,4),'"/>') ;
end fprintf(fid,'%s','</Matrix3>') ;
fclose(fid);
jetzt möchte ich aber, dass die Anführungszeichen DIREKT vor und hinter den entsprechenden Zahlen bei X1=, X2= etc stehen (siehe .txt Dokument)
Es werden aber automatisch führende Leerzeichen erzeugt, die ich nicht haben möchte.
Das bedeutet: schreibe mir eine Zahl raus, die 6 Stellen lang ist, eine Stelle geht für den Punkt drauf und 2 für Nachkommastellen. Das bedeutet also, dass vor dem Punkt 3 Stellen stehen müssen. Da musst du dir nun überlegen, was du wirklich haben willst und dann kann man dir helfen.
Vielen Dank für den Hinweis. Die 6 brauche ich damit im Prinzip nur beim dritten Eintrag, Bei den anderen komme ich mit 5 aus.
Allerdings ist das leider nicht konstant. Also manchmal habe ich eine und manchmal zwei Stellen vor dem Komma. Führungsnullen kommen nicht in Frage. So dass ich quasi immer die maximal vorhandenen Stellen vor dem Komma und fixe Nachkomastellen bauche.
Aber das willst du ja vermutlich auch nicht, da du was von Nachkommastellen bestimmen geschrieben hast.
Wenn nur wichtig ist, dass es exakt 2 Nachkommastellen und beliebig viele Stellen vor dem Komma sein kann, dann vielleicht:
Falls das auch nicht das richtige ist: was soll denn bei dem Beispiel in der ersten Zeile passieren?
X1=" 8.00" ist ja nicht erwünscht. Was genau soll stattdessen da stehen? Vielleicht
X1= "8.00"?
X1="8.00"?
Danke, das wars. Da hab ich wohl zu kompliziert gedacht
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.