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

Nur bestimmte Werte aus einer txt-Datein entnehmen.

 

ms1080
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 29.09.2010, 10:23     Titel: Nur bestimmte Werte aus einer txt-Datein entnehmen.
  Antworten mit Zitat      
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!

Hoffe Ihr könnt mir da einen Tipp geben.

Code:

[txtfile,path2txt] = uigetfile('*.txt','Bitte Datei auswählen');
fid = fopen(fullfile(path2txt,txtfile),'r');
    rawdata1 = textscan(fid,'%f %f %f','headerlines',8);                  
    data1 = rawdata1{3};              
    data1 = reshape(data1,100,100);            
    rawdata2 = textscan(fid,'%f %f %f','headerlines',5);
    datax = rawdata2{7};
    datax = reshape(datax);
    datay = rawdata2{7};
    datay = reshape(datay);
fclose(fid);
 


Anbei noch eine txt-Datei als Beispiel der zu lesenden Datei.

Schonmal vielen Dank für Eure Antwort.

3D-beschichtet-Wafer08.TXT
 Beschreibung:

Download
 Dateiname:  3D-beschichtet-Wafer08.TXT
 Dateigröße:  113.14 KB
 Heruntergeladen:  478 mal
Private Nachricht senden Benutzer-Profile anzeigen


Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 29.09.2010, 19:04     Titel:
  Antworten mit Zitat      
Hallo,

hier mein Vorschlag:
Code:

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
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 07.10.2010, 16:32     Titel:
  Antworten mit Zitat      
hi

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

mfg nitram
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 07.10.2010, 17:31     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:

irgendwie scheint das nicht so funktionieren

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.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 07.10.2010, 21:17     Titel:
  Antworten mit Zitat      
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.

mfg nitram
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 08.10.2010, 01:20     Titel:
  Antworten mit Zitat      
Hallo

na dann schau Sie dir doch einfach an, z.B. indem du auf die Variable 'value' einfach im Workspace klickst oder mit diesen Befehl:
Code:

values{1}{1};
values{2}{1};
 

Also jedesmal den Variablenwert in eine Textdatei zu schreiben nur um den Wert zu überprüfen halte ich doch für ein wenig aufwendig Very Happy.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 08.10.2010, 08:27     Titel:
  Antworten mit Zitat      
hi

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:

Reference to non-existent element of a cell array

sorry steh da auf´n schlauch....

mfg nitram
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 08.10.2010, 11:38     Titel:
  Antworten mit Zitat      
Hallo,

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
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.