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

Aus gemischter Textdatei Zahl separieren

 

Pusteblume0302

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2015, 16:58     Titel: Aus gemischter Textdatei Zahl separieren
  Antworten mit Zitat      
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:
Code:

B = textscan(fid,'%*s %*s %*s %*s %*s %*s %s %*s %*s %*s %*[^\n] ',4,'delimiter', '=');

for i=1:4
    C {i} = strsplit(B{1,1}{i,1});
    U1 (i) = str2double(C{1,i}{1,1});
end


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 Smile
Lieben Dank schonmal!


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.06.2015, 17:11     Titel:
  Antworten mit Zitat      
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 Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pusteblume0302

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2015, 10:50     Titel:
  Antworten mit Zitat      
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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.06.2015, 11:03     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Pusteblume0302

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2015, 11:14     Titel:
  Antworten mit Zitat      
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 Wink
 
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.