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

Selektives Einlesen eines txt-files

 

AndreHasken
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 07.06.10
Wohnort: Münster
Version: ---
     Beitrag Verfasst am: 30.06.2010, 15:21     Titel: Selektives Einlesen eines txt-files
  Antworten mit Zitat      
Hallo zusammen,

zu diesem Themenfeld gibt es zwar schon mehrere Forumsbeiträge, jedoch waren diese für mein Problem nicht konkret genug, bzw. ich bin nicht in der Lage die Hinweise auf meinen Sachverhalt zu übertragen Confused

Ziel:
- Einlesen von drei bestimmten Zahlen aus einen txt-file

Rahmenbedingungen:
- Die Zahlen stehen nicht immer an der gleiche Stelle (in Bezug auf Spalte und Zeile) im txt-file
- Die Wörter unmittelbar vor den einzulesenden Zahlen sind nicht eindeutig, d.h. diese kommen mehrmals im Text vor.

Konkrete Aufgabe:
Einlesen der drei Regressionskoeffizienten (beta0, beta1 und beta2) in eine Matlab-Variable names Parameter.
Die Regressionskoeffizienten finden sich im beispielhaft angehängte txt-file in den Zeilen 65-67. Diese Position kann bei zukünftigen Ausführungen allerdings wie erwähnt variieren.

Dass ich mit den Schlagwörtern Textscan, Textread etc. arbeiten muss, ist mir bewusst. Allerdings bin ich bis jetzt bei der Programmierung stets gescheitert.
Hoffe ihr könnt einem ambitionierten Matlabeinsteiger mit einem konkreten Codevorschlag weiterhelfen?
Vielen Dank im voraus für jegliche Mühen,
Andre

Frontout.txt
 Beschreibung:

Download
 Dateiname:  Frontout.txt
 Dateigröße:  7.33 KB
 Heruntergeladen:  885 mal
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: 30.06.2010, 20:16     Titel:
  Antworten mit Zitat      
Hallo,

es muss zumindest ein eindeutiges Merkmal zur Identifizierung der relevanten Zahlen geben. Beispiel: die Zeile "the final mle estimates are :". Dann kann mal mit fgetl zeilenweise einlesen, bis diese Zeile kommt (strmatch) und danach mit textscan weiterarbeiten.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 07.06.10
Wohnort: Münster
Version: ---
     Beitrag Verfasst am: 02.07.2010, 10:54     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für den Hinweis:

Habe nun zunächst probiert den Text einzulesen und die relevante Stele in eine variable "relevant" zu übergeben. Allerdings resultiert nur ein vollständig leere Variable?

Code:

s=textread('Frontout.txt','%s', 'delimiter','\n','whitespace','');
relevant=strfind(s,'mle:');
 
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: 03.07.2010, 22:47     Titel:
  Antworten mit Zitat      
Hallo,

das sollte dich insofern nicht wundern, als der String 'mle:' in deiner Datei nicht vorkommt. Warum probierst du's denn eigtl nicht mit fgetl und textscan? Da ists nicht allzu schwierig:
Code:
fid = fopen('Frontout.txt');
l = fgetl(fid);
while ~feof(fid) && isempty(strfind(l, 'mle estimates'))
    l = fgetl(fid);
end
data = textscan(fid, '%*s %*f %f %*[^\n]', 3, 'headerlines', 3);
fclose(fid)


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 07.06.10
Wohnort: Münster
Version: ---
     Beitrag Verfasst am: 05.07.2010, 11:08     Titel: Danksagung
  Antworten mit Zitat      
Hallo Harald,

danke für deinen Hinweis ( Embarassed ) und deinen Codevorschlag.

Funktioniert einwandfrei.

Ich habe das Ende noch um

Code:

Parameter = cell2mat(data);
 


erweitert um mit den eingelesen Werte weiter rechnen zu können...

Also nochmals vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Matthias_S

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2010, 16:45     Titel:
  Antworten mit Zitat      
Hallo

ich denke ich habe ein ganz ähnliches Problem, nur dass ich alles außer den ersten 17 Zeilen einlesen will (also nach den drei Leerzeilen)
Ich schaffe es leider nicht, das auf mein Problem umzuformulieren.

Gruß Matthias

JG_Fe_2306_4pos_13psi.txt
 Beschreibung:

Download
 Dateiname:  JG_Fe_2306_4pos_13psi.txt
 Dateigröße:  180 KB
 Heruntergeladen:  577 mal
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.10.2010, 20:57     Titel:
  Antworten mit Zitat      
Hallo

wie wäre es denn mit TEXTSCAN?
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.