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

Abschnitte in eingelesenem .txt-File zusammenfassen?

 

SR66
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 07.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2012, 11:21     Titel: Abschnitte in eingelesenem .txt-File zusammenfassen?
  Antworten mit Zitat      
Hallo Leute,

Ich hoffe, ihr könnt mir hier weiterhelfen. Zunächst: ich bin ein totaler Anfänger in MATLAB, aber die gegebenen Umstände lassen kein anderes Programm zu. Auch weiß ich nicht, ob der Titel des Themas richtig formuliert ist...

Zu meinem Problem:

Ich habe .txt-Files mit Messdaten. Diese enthalten jeweils um die 260.000 Wertepaare, Zeit und zugehörige Geschwindigkeit. Diese lese ich mit

Code:
A=dlmread('messdaten.txt','\t',51208,0)


ein. 51208 deswegen, da die Daten erst ab dieser Zeile relevant sind. Nun hab ich die Daten eingelesen und möchte nun, das MATLAB mir diese Daten plottet. Und zwar die Zeit auf der x-Achse, Geschwindigkeit auf der y-Achse. Dies mache ich mit
Code:
, was auch wunderbar funktioniert. Leider habe ich nun auf der x-Achse die Anzahl der eingelesenen Werte und nicht die Zeit stehen. Wobei jeweils 1 Sekunde 51200 Werte in der Tabelle entsprechen.

Wie kann ich MATLAB nun sagen, dass es mir jeweils 51200 Werte zu 1 Sekunde zusammen fasst und dann richtig plottet (Zeit in s auf der x-Achse, Geschwindigkeit v auf der y-Achse)? Ich weiß leider keinen Ausweg, hoffe ihr könnt mir weiter helfen.

Ich danke euch schon mal im Voraus,

MfG
SR

Finger_Schaden_3_2_0x150.png
 Beschreibung:
Edit: Anbei ein Graph. Wie man sieht, ist auf der Abszisse die Anzahl der Wertepaare, und nicht die Sekunden angetragen. Wie kann ich das ändern?

Download
 Dateiname:  Finger_Schaden_3_2_0x150.png
 Dateigröße:  7.27 KB
 Heruntergeladen:  371 mal
Private Nachricht senden Benutzer-Profile anzeigen


SR66
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 07.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2012, 16:50     Titel:
  Antworten mit Zitat      
So, bin nun doch selber auf ne Lösung gestoßen (und bin darauf ziemlich stolz Very Happy )

Hier meine Vorgehensweise:

Da jede Datei einen Header mit 4 Zeilen Text hatte, hab ich zur Probe aus einer Datei den Header gelöscht, so dass ich nur noch Zahlenwerte in der Textdatei hatte und einzeln abgespeichert.

Diese Datei hab ich dann mit dem Befehl

Code:
[t, v]=textread('messdaten.txt','%f%f')


eingelesen und mit

Code:
geplottet.

Danke an die, die sich deswegen Gedanken gemacht haben. Wenn es auch ohne Löschen des Headers geht - bitte posten! Smile

Ansonsten stell ich mich noch kurz vor:

Ich bin Student im 7. Semester Maschinenbau und bin derzeit mit meiner Abschlussarbeit beschäftigt (geht um Schwingung und Dämpfung von Faserverbundstoffen). Durch die große Datenmengen bei den Messungen werd ich nun öfter mit MATLAB zu tun haben und wahrscheinlich hier öfter mit blöden Fragen auftauchen. Wink

MfG
SR
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.04.2012, 17:34     Titel:
  Antworten mit Zitat      
Hallo,

du kannst bei textread mit der Option 'headerlines' eine Anzahl zu überspringender Zeilen am Dateianfang angeben.

Im übrigen sollte statt dem veralteten textread die Funktion textscan verwenden werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
SR66
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 07.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2012, 18:24     Titel:
  Antworten mit Zitat      
Vielen Dank, das erspart mir einiges an Arbeit. Smile

Kann ich in dem Befehl auch noch angeben, bis zu welcher Zeile mit Wertepaaren er einlesen soll? Z.B. ab Zeile 50000 bis Zeile 100000, dh. 1s bis 1,5s?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.04.2012, 21:02     Titel:
  Antworten mit Zitat      
Hallo,

du kannst bei textscan über den Parameter N angeben, wie oft das Format angewendet werden soll. Den Startpunkt kannst du über die 'headerlines' festlegen. Im Zweifel hilft auch ein Blick in die Doku Wink

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
SR66
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 07.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2012, 08:38     Titel:
  Antworten mit Zitat      
Wenn ich textscan verwende, dann liest MATLAB mir die Werte in cell ein und ich kann nicht plotten Embarassed

Kannst du mir bitte einen Beispielcode für meinen Fall mit dem Parameter N angeben?

Ich habs so probiert:

Code:
fid=fopen('filename.txt');
[t, v]=textscan(fid,'%f%f','headerlines',50000,'N',100000);
plot(t,v)


weil ich aus der Doku nicht ganz schlau wurde...


FROHE OSTERN auch! =)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.04.2012, 08:46     Titel:
  Antworten mit Zitat      
Hallo,

dann hole dir die Daten doch da raus?
Ungetestet:
Code:
fid=fopen('filename.txt');
data=textscan(fid,'%f%f',100000,'headerlines',50000);
t = data{1};
v = data{2};
plot(t,v)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
SR66
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 07.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2012, 08:54     Titel:
  Antworten mit Zitat      
Ach, da kommt der Parameter N... Vielen Dank, Harald!

Das ich die Daten manuell rausziehen muss, war mir auch neu - wieder was gelernt!

Vielen Dank dir nochmal und nen stressfreien Ostersonntag! =)
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.