Verfasst am: 29.09.2010, 10:23
Titel: Nur bestimmte Werte aus einer txt-Datein entnehmen.
Hi
ich habe eine Textdatei in der viele Werte sind, die ich in meinem Matlabprogramm brauche.
1. sollen 100*100 Werte aus der Datei entnommen werden um ene Matrix damit zu füllen. Dabei sollen die ersten 8 Zeilen ignoriert werden. Das habe ich hinbekommen.
2. sollen die 2 Werte einzeln entnommen werden, die in den zuvor nicht beachteten Zeilen liegen. Wert 1 in zeile 6 und Wert 2 in Zeile 7. Dabei ist nich zu beachten, dass ich nur die Zahlenwerte haben will. Die beginnen an der 7 Stelle!
A = textscan(fid,'%s',2,'headerlines',5); % Einlesen der Zeile 6 und 7 (XRange, YRange) aus deinem File
values = regexp(A{1},'\d.\d*','match'); % Extraktion der Ziffern
irgendwie scheint das nicht so funktionieren, wie ich es mir vorstelle.
möchte die werte mit
fprintf
aber das will mir nicht gelingen, weil weder sprintf noch fprintf für cell objekte definiert sind. wie kann ich denoch die werte ausgeben.
oder wie kann ich die werte jeweils einzeln aus der txtdatei entnehmen
Was funktioniert nicht? Was erhaeltst du, was erwartest du?
Zitat:
wie kann ich denoch die werte ausgeben
Ich dachte deine Frage beinhaltete das Einlesen der Ziffern nach XRange und YRange in deinem Beispiel-textfile (was mein Code macht), nun redest du von Ausgabe, verstehe ich nicht? Was moechtest du denn nun machen?
Ich wuerde dich bitten dein Problem etwas praeziser zu stellen.
wollte halt nur sichergehn, ob er die riichtigen werte hat, weil ich mit diesen werten dann weiter rechnen will.
deswegen wollte ich sie mir mal ausgeben.
1. du hast schon recht, das es sinnfrei ist die daten in eine textdatei zu schreiben, aber wollte das nur, um zu erkennen, ob er die datei so eingelesen hat.
2. finde die daten im workspace nicht, was mich ein wenig wundert, weil normal müssten da ja noch andere daten drin sein?!
3. kann die daten auch nicht mit deinen beschriebenen befehlen aufrufen:
also wenn ich ehrlich bin weiss ich nicht wo dein Problem liegt? Klappt bei mir ohne Probleme:
Also ich habe deine TXT-file runtergeladen und auf dem Desktop gespeichert. Dann diesen Code verwendet, um das Textfile einzulesen (ist 1 zu 1 dein Code) und die Werte der beiden gewuenschten Felder (XRange und XRange) einzulesen:
Code:
[txtfile,path2txt] = uigetfile('*.txt','Bitte Datei auswählen');
fid = fopen(fullfile(path2txt,txtfile),'r');
A = textscan(fid,'%s',2,'headerlines',5); % Einlesen der Zeile 6 und 7 (XRange, YRange) aus deinem File
values = regexp(A{1},'\d.\d*','match'); % Extraktion der Ziffern
values{1}{1}
values{2}{1}
Wenn du diesen Code einfach kopierst und im Workspace einfuegst sollte am Ende der Wert der beiden Zahlen (XRange und XRange) erscheinen. Probier dies doch mal bitte! Wenn dies nicht klappen sollte (was ich nicht glaube), dann bitte beschreiben wo der Fehler war.
(Falls du natuerlich diesen Codeteil in einer function ausfuehrst und die Variable 'values; nicht uebergibst, ist sie natuerlich nicht im Workspace gespeichert)
MFG
Sco
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
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.