|
|
Aus gemischter Textdatei Zahl separieren |
|
Pusteblume0302 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2015, 16:58
Titel: Aus gemischter Textdatei Zahl separieren
|
 |
Hallo,
ich habe auf der Arbeit folgendes Problem: Ich will aus einem txt-File, der aus Text und Zahlen besteht, nur die Zahlen heraustrennen und plotten. Teilweise hat es schon funktioniert die gewünschten Werte in einer Tabelle abzuspeichern, dort sind sie zunächst hoc als string definiert, weil teilweise noch Mist mit drin steht. Wenn ich den abgespaltet habe, will ich aber am Ende eine Zahl haben, doch genau da funktioniert die Umwandlung des Strings nicht.
So sieht der Code bis jetzt aus:
Die Tabelle B enthält dann folgende Daten:
'0 U2'
'4,75378075903843E-07 U2'
'1,27492588150144E-06 U2'
'2,19168143878734E-06 U2'
In U1 soll am Ende nur noch die Zahl stehen. Wenn ich aber den Befehl 'str2double' verwende, gibt mir MATLAB folgende Ergebnisse:
0 47537807,5903843 127492588,150144 219168143,878734
Wie wandle ich das 'E-07' richtig um?
Ich hoffe ich konnte meine Frage verständlich stellen
Lieben Dank schonmal!
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.06.2015, 17:11
Titel:
|
 |
das dezimaltrennzeichen in matlab ist der punkt nicht das komma. am besten du änderst das. wie man das macht dazu giebt es schon sachen hier im forum. du liest außerdem alles als strings ein. warum liest du die zahl nicht gleich als zahl ein. so wie ich das aus der doc zu textscan erlese versteht der auch die exponent schreibweise. ohne beispieldaten ist es immer schwer verbesserungsvorschläge zu machen
_________________
richtig Fragen
|
|
|
Pusteblume0302 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.06.2015, 10:50
Titel:
|
 |
|
 |
|
Die ursprüngliche Textdatei sieht so aus: 4 Zeilen mit je 11 Einträgen (wird hier ungünstig angezeigt, deshalb trenne ich die Zeilen mit einer Leerzeile)
"Joint=1 OutputCase=TimeHistory CaseType=NonDirHist StepType=Time StepNum=0 U1=0 U2=0 U3=0 R1=0 R2=0 R3=0
Joint=1 OutputCase=TimeHistory CaseType=NonDirHist StepType=Time StepNum=0,01 U1=4,75378075903843E-07 U2=1,68986212510244E-08 U3=-1,17482250405629E-07 R1=-2,56844315968812E-08 R2=5,06539613995172E-07 R3=2,57196629775494E-08
Joint=1 OutputCase=TimeHistory CaseType=NonDirHist StepType=Time StepNum=0,02 U1=1,27492588150144E-06 U2=4,54291124878731E-08 U3=-3,15420325662942E-07 R1=-6,90431254770222E-08 R2=1,35880380662408E-06 R3=6,91376316327344E-08
Joint=1 OutputCase=TimeHistory CaseType=NonDirHist StepType=Time StepNum=0,03 U1=2,19168143878734E-06 U2=7,79837671821702E-08 U3=-5,41874238849713E-07 R1=-1,18524970555378E-07 R2=2,33555751332758E-06 R3=1,18687413390042E-07"
Ich brauche nur die Zahlen, die nach "U1=" folgen. Das mit dem Umwandeln des Komma in einen Punkt versuche ich gerade, aber noch mit mäßigem Erfolg. Wenn ich die Daten nicht als string sondern als Zahl einlese (%f oder %d) gibt er mit nur die Zahl vor dem Komma raus,was ja vermutlich auch richtig ist, wenn du mir sagst, dass Matlab das Komma nicht lesen kann.
Danke erstmal, ich versuch eich weiter am Umwandeln...
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 10.06.2015, 11:03
Titel:
|
 |
Zitat: |
Das mit dem Umwandeln des Komma in einen Punkt versuche ich gerade, aber noch mit mäßigem Erfolg. |
gibr dazu sachen hir im forum oder auch fertige lösungen im fileexchange glaube ich
_________________
richtig Fragen
|
|
|
Pusteblume0302 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.06.2015, 11:14
Titel:
|
 |
da habe ich auch was gefunden, aber irgendwie gibt es noch Fehlermeldungen...gibt sogar fertige Funktionen ('comma2point'),aber da mache ich auch noch was falsch, versuche hier noch ein bisschen zu suchen und melde mich wieder wenn ich komplett verzweifle
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|