Matrix aus .txt < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:14 Sa 04.04.2009 | Autor: | webbi |
Hallo!
Ich habe ein Problem beim Einlesen einer txt. --> eine Beispieldatei ist beigefügt.
Datei-Anhang
Ich möchte alle Werte nach dem Header (ab Zeile 22) in eine Matrix speichern. Problem: Ich möchte dabei auf die erste Spalte(in welcher nichts steht) sowie alle Spalten nach der 25. verzichten.
Die Matrix soll am Ende nur noch alle Messwerte enthalten.
Ich habe es folgendermaßen probiert:
fid=fopen('Beipiel.txt','r');
M=textscan(fid,'%f','headerLines',21);
M=cell2mat(M)
Es ist noch sehr unvollständig, leider komme ich aber nicht wesentlich weiter...
Es müsste eigentlich sehr einfach zu lösen sein, leider fehlt mir die nötige Erfahrung mit Matlab. :(
Über Hilfe bin ich sehr dankbar!
Grüße, webbi
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
[http://www.gomatlab.de/viewtopic,p,20245.html#20245]
Dateianhänge: Anhang Nr. 1 (Typ: txt) [nicht öffentlich]
|
|
|
|
Hallo,
da einige Zeilen länger sind als andere, würde ich eine etwas umständlichere Methode wählen, die aber nicht kompliziert ist. Hier wird einfach jede Zeile einzeln verarbeitet:
M=[]; fid=fopen('Beispiel.txt','r');
for i=1:21, inLine=fgetl(fid), end; % Zeilen überspringen
while ~feof(fid), % solange Datei nicht zuende
inLine=fgetl(fid); % lies Zeile ein
inNum=str2num(inLine); % interptetiere die Zahlen
M=[M; inNum(1:21)]; % hänge die ersten 21 an die Matrix
end;
Ich hoffe, das hilft dir erstmal.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 22:50 So 05.04.2009 | Autor: | webbi |
Hallo!
Vielen Dank schonmal für deine Hilfe!!
Bei deinem Lösungsvorschlag erhalte ich aber leider genau das Ergebnis, dass ich garnicht brauchen kann. Anstatt die ersten Zeilen zu überspringen, werden jetzt als Ergebnis für [M] genau die ersten 21 Zeilen gesetzt.
Ich möchte ja am Ende nur eine Matrix, in der die Messwerte stehen. Besonders interessiert mich eine Lösung, um ab der 21. Zeile die 1. und die letzten Spalten zu ignorieren.
Viele Grüße,
webbi
Juhu!
Mit etwas ausprobieren, habe ich es geschafft!
M=[]; fid=fopen('Beispiel.txt','r');
for i=1:21, fgetl(fid); end; % Zeilen überspringen
while ~feof(fid), % solange Datei nicht zuende
inLine=fgetl(fid); % lies Zeile ein
inNum=str2num(inLine); % interptetiere die Zahlen
M=[M; inNum(1:24)]; % hänge die ersten 24 Spalten an die Matrix
end;
Vielen Dank!!
Leider wusste ich nicht wie ich die Frage löschen kann... ;)
|
|
|
|