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

Einlesen von Textdatei

 

khaled.habaieb
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 02:25     Titel: Einlesen von Textdatei
  Antworten mit Zitat      
hallo,

ich habe einen Textdatei, den ich in Matlab aufrufen soll und anschließend die Messwerte in einer Matrix schreiben möchte.

Mein Textdatei hat folgende gestalt:

61316,29 423 33 25 31 °C 38 29 29 29 29 40 prc
61316,76 0d01:17:26,3215616 HEAT_CNTRL FOIL 594 °C
61316,79 462 32 25 32 °C 34 26 26 26 26 35 prc
61317,26 0d01:17:26,8208640 HEAT_CNTRL FOIL 594 °C
61317,29 482 34 27 32 °C 40 30 31 31 30 42 prc

wie kann man nur die Messwerte einlesen, sodass ich im Endeffekt auf dieses Ergebnis komme:

423 33 25 31 38 29 29 29 29 40
462 32 25 32 34 26 26 26 26 35
482 34 27 32 40 30 31 31 30 42
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.08.2008, 08:20     Titel:
  Antworten mit Zitat      
Hi,

vielleicht geht es auch eleganter, aber folgendes leistet das gewünschte:
Code:
clear all;
clc;

m=1;
fid=fopen('test.txt');
while 1
    tline = fgetl(fid);
    if ~ischar(tline),   break,   end
    temp=textscan(tline,'%*s %n %n %n %n %*s %n %n %n %n %n %n %*s');
    daten(m,:)=[temp{:}];
    fgetl(fid);
    m=m+1;
end
fclose(fid);

daten

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 15.08.2008, 13:57     Titel:
  Antworten mit Zitat      
Hallo,
eigentlich war es ja meine Zielstellung zumindest etwas schnelleres wenn schon nicht eleganteres zu basteln, aber irgendwie ist daraus dann für mich ein Lehrstück bezüglich memmapfile geworden...
Aber da der Code nun nach längerem basteln endlich fertig ist, muss ich Ihn doch noch loswerden, auch wenn er etwas kryptisch geworden ist und ich keine Ahnung habe wie ich die Schleife los werden kann.
Code:
clear all;
clc;
copyfile('test.txt', 'text_mod.txt');                      %Originaldatei kopieren
file = memmapfile('text_mod.txt','Writable',true);         %laden
Umbruch = find(file.data==13);                             %Umbrüche finden
for j=1:2:length(Umbruch)-1
        file.data(Umbruch(j)+2:Umbruch(j+1)+1)=uint8(' ');  %Zeilen mit Datenmüll durch Leerzeichen ersetzen
end
delete(file)                                                %memmapfile löschen
fid=fopen('text_mod.txt');                                  %ganz normal Daten einlesen
[temp, count]=fscanf(fid,'%*s %d %d %d %d %*s %d %d %d %d %d %d %*s', [10,inf]);
fclose(fid);
delete('text_mod.txt')                                      %Kopie löschen
disp(temp')

Wer noch Verbesserungsvorschläge hat der möge sich gerne melden, hab das erste mal mit memmapfile gearbeitet und finde das ganze recht spannend.
Gruß Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
khaled.habaieb
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 15:21     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle und ausführliche Antwort.
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 - 2024 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.