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

Strings und Matrix zusammenfügen und als ASCII Datei ausgeb

 

Shin
Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 25.05.2011, 16:39     Titel: Strings und Matrix zusammenfügen und als ASCII Datei ausgeb
  Antworten mit Zitat      
Hallo leute!
Ich soll für ein Projekt eine Ascii/Text-Datei erstellen, die folgend aussehen soll:

text text text
xy= 125, 1, 67
xy= 512, 1, 78
....
xy= 721, 1, 918

Das über 133 Zeilen lang.
Die Werte habe ich in einer Matrix und in der Hilfe habe ich gesehen, dass man mit einem ASCII Export befehl, die Matrix mit Kommas trennen kann und so ausgeben.

Aber: Wie bekomme ich den text am Anfang der Datei rein, sowie die "xy="s?
In einer normalen Matrix kann ich ja keine Strings ablegen.

Über eine Struktur? Wie geht das?

Grüße und Dank, Shin
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.05.2011, 16:52     Titel:
  Antworten mit Zitat      
Hallo ,

da musst mehr den WEG über FOPEN/FPRINTF/FCLOSE nehmen, sozusagen, eigenen Exporter schreiben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 26.05.2011, 14:05     Titel:
  Antworten mit Zitat      
Danke denny! Klappt damit wunderbar.
Nun ich habe ein kleines Problem noch, wobei nun das meiste geschafft ist:

Code:
load datenfuerascii
begin = 'place lstring constrained';
ende = 'reset';
fid = fopen('test.txt','w','n','USASCII');
round(100*DfASCII)/100;
fwrite(fid, begin)

fprintf(fid, '\r\nxy=     %.3f          ,%.3f          ,%.3f', DfASCII')
fprintf(fid, '\r\n')

fwrite(fid, ende)
fclose(fid);


bringt mir nun die text-Datei mit dem Inhalt:

Zitat:
place lstring constrained
xy= 0.000 ,1.000 ,0.000
xy= 0.000 ,1.000 ,0.000
xy= 0.000 ,1.000 ,-0.190
xy= 15.000 ,1.000 ,0.790
xy= 30.000 ,1.000 ,0.160
xy= 45.000 ,1.000 ,-0.080
xy= 60.000 ,1.000 ,-0.230
xy= 75.000 ,1.000 ,0.120
xy= 90.000 ,1.000 ,0.580
xy= 105.000 ,1.000 ,1.530
xy= 120.000 ,1.000 ,2.260
xy= 135.000 ,1.000 ,3.880
xy= 150.000 ,1.000 ,6.460
xy= 165.000 ,1.000 ,9.450
xy= 180.000 ,1.000 ,13.000
xy= 195.000 ,1.000 ,16.590
etc etc.

Aber ich habe ein Problem!
Ich möchte einen fixen Abstand zwischen den einzelnen Werten, bisher habe ich es über Leerzeichen gemacht - das ist aber unschön und sie sind NICHT in einer Reihe.

Mit
Code:
fprintf(fid, '\r\nxy= %20.3f  %20.3f  %20.3f', DfASCII')

ist das zwar realisierbar, ABER, dann bekomm eich mein Komma nicht direkt vor die Zahl, denn

Code:

fprintf(fid, '\r\nxy= %20.3,f  %20.3,f  %20.3,f', DfASCII')

funktioniert logischerweise nicht.


Nun:
Wie kann ich in dem fprintf Befehl etwas in einem bestimmten Abstand einbetten PLUS direkt davor ein Komma setzen - die mir bekannten Befehle und alles was ich versucht habe, bringen mir nichts hilfreiches bzw. falsches.

Jemand eine Idee?

Grüße,
Chris.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 26.05.2011, 14:34     Titel:
  Antworten mit Zitat      
Hallo

warum brauchst du es unbedingt vor der Zahl? Warum nicht direkt dahinten?

Code:

fprintf(fid, '\r\nxy= %20.3f,  %20.3f,  %20.3f', DfASCII')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 26.05.2011, 14:36     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo

warum brauchst du es unbedingt vor der Zahl? Warum nicht direkt dahinten?

Code:

fprintf(fid, '\r\nxy= %20.3f,  %20.3f,  %20.3f', DfASCII')
 


Die Daten werden in einem 3D-Modell weiterverarbeitet und ich habe die Vorlage sie zu in einer txt-File abzulegen. Inwieweit die Position des Kommas relevant ist kann ich nicht sagen, vielleicht geht es auch dahinter.
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.