|
|
Txt Datei ohne Buchstaben einlesen |
|
Meiner |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 18:16
Titel: Txt Datei ohne Buchstaben einlesen
|
 |
Hallo ich habe ein Problem,
ich möchte eine txt einlesen, die aber mit den Spaltennamen beginnt, möchte aber nur die Werte aus den Spaten.
Die Dateien sehen alle so aus (unter den 3 hinteren Spalten stehen auch Werte und es gibt auch noch mehr Spalten das ist nur ein BSp.) Ich möchte somit unter 'Counter' alle Zeilen und Spaten einlesen
// Start Time: 0
// Update Rate: 100.0Hz
// Scenario: 34.3
// Firmware Version: 1.0.7
Counter Acc_X Acc_Y Acc_Z
19033
19034
19035
Kann mir bitte jemand helfen?!
Danke euch
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 20:01
Titel:
|
 |
Hallo,
du kannst z.B. textscan verwenden und die Anzahl der zu überspringenden Zeilen mit 'HeaderLines' angeben.
Falls die Anzahl der zu überspringenden Zeilen variabel sein soll, kannst du dir mit fgetl Zeile für Zeile aus der Datei holen und dann mit textscan zu lesen anfangen, wenn der relevante Teil kommt.
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 20:49
Titel:
|
 |
Ich hab es bis jetzt so probiert.
fid = fopen(filename);
line = [];
while isempty(strfind(line,'Counter'))
line = fgetl(fid);
end
aber da schreibt er nicht die ganze datei. wo ist mein Fehler.
Danke dir Harald
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 21:41
Titel:
|
 |
Hallo,
der von dir genannte Code findet die erste Zeile, die 'counter' enthält - das war's. Anschließend musst du den verbleibenden Inhalt - beispielsweise mit textscan - einlesen.
Wenn du weitere Hilfe benötigst, wäre es hilfreich, eine Beispieldatei anzuhängen.
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 22:08
Titel:
|
 |
die Datei ist im Anhang
Danke dir
Beschreibung: |
|
 Download |
Dateiname: |
P042_F_Lau_S1_003-000.txt |
Dateigröße: |
1.59 MB |
Heruntergeladen: |
263 mal |
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 23:19
Titel:
|
 |
Hallo,
danke für die Datei. Hast du denn aber selbst mal ausprobiert, mit textscan zu arbeiten? Falls ja, wo gab es dabei Probleme? Falls nein, warum nicht?
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 09:18
Titel:
|
 |
Hallo,
ja aber ich weiß nicht so richtig wie und wann ich den Befehl einsetzen soll. Ich hab bis jetzt kaum Matlab Erfahrung.
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 09:32
Titel:
|
 |
Hallo,
wann: nach den fgetl-Befehlen.
wie: so wie er dokumentiert ist. Im Abschnitt "Examples" von
sollte sich etwas finden lassen, das passt.
Noch ein Hinweis: mit
kannst du dynamisch die Anzahl der Spalten ermitteln, indem du die Anzahl der Tabulatoren (ASCII-Code 9) untersuchst.
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 13:31
Titel:
|
 |
Hey Harald,
ich hab es nochmal probiert, aber es klappt nicht so richtig
hier mein neuer Code
fid=fopen('P042_F_Lau_S1_003-000.txt');
HEAD = textscan(fid, '%s', 0, 'delimiter', 'Headerlines', 5);
HEAD = fgetl(fid);
HEAD = regexp(HEAD,'\t','split');
DATA = textscan(fid, sprintf('%%%c ',ones(1,length(HEAD))*102),'delimiter',',');
fclose(fid)
ich habe echt keine Ahnung sorry.
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 14:33
Titel:
|
 |
Hallo,
bei dem Code blicke ich nicht ganz durch. Aber warum überhaupt der komplett neue Ansatz? Du hattest doch fast schon alles:
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 15:25
Titel:
|
 |
Super Vielen Dank!!!!
Du hast mir enorm geholfen. Noch eine Frage ist es denn möglich alle meine Datein, die ja unterschiedliche Namen haben einzulesen?
Ist das über 'function' möglich?
Grüße Sander
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 15:49
Titel:
|
 |
Hallo,
ja, du kannst dir eine Funktion schreiben, die beispielsweise den Dateinamen als Eingabeargument entgegennimmt und die eingelesenen Daten als Ausgabeargument zurückgibt.
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 17:27
Titel:
|
 |
Hey Harald,
geht auch eine normale for Schleife bei dem i = die Anzahl der Dateien ist? weil das mit function klappt bei mir nicht
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.05.2013, 22:05
Titel:
|
 |
Hallo,
auch das geht.
Wenn etwas "nicht klappt", bitte immer genau beschreiben, was versucht wurde und wo dabei die Probleme aufgetreten sind, denn dann kann man auch beim ursprünglichen Ansatz Hilfestellung geben.
Grüße,
Harald
|
|
|
|
|
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.
|
|