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 einer ASCII-Datei

 

chortik
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 14.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2009, 20:48     Titel: Einlesen einer ASCII-Datei
  Antworten mit Zitat      
Hallo ich habe fogendes Problem und hoffe jemand kann mir da weiterhelfen.
Ich muss ein ascii-file einlesen doch leider bekomm ich nur Fehlermeldungen.
In der obersten zeile sind de Spaltenüberschriften. Die brauch ich aber nicht, da ich die bearbeiteten Werte als Exceldateien abspeichern will. Auch enthalten die Spalten nicht gleich viele Werte. Zudem ist die erste Spalte die zeit welche im Format hh:mm:ss (bsp 18:15:23,001 auf tausendtelsek. genau) gespeichert ist Ich hab ein Bild der ASCII-datei angehängt. Wenn jemand ne Idee hat wäre ich sehr dankbar.

Mit dem einfachen load Dateiname kommt die fehlermedung: ??? Error using ==> load
Number of columns on line 1 of ASCII file C:\Users\alex\Desktop\Arbeit\PHY\HV1\PHY\FSA-VV1_01-01-end-PHY_080219_Original.asc
must be the same as previous lines.

textread funzt auch nicht >> textread ('FSA-VV1_01-01-end-PHY_080219_Original.asc')
??? Error using ==> dataread
Trouble reading number from file (row 1, field 1) ==> Zeit EKG[mV] SCL[µS] SCR[µS] EMI[µV] EMI

Error in ==> textread at 176
[varargout{1:nlhs}]=dataread('file',varargin{:});
genausowenig wie dataimport.


mir gehen allmählich die ideen aus bzw. ich hab schon keine mehr

Schon mal danke im Vorraus

arbeit.png
 Beschreibung:
ASCII-File

Download
 Dateiname:  arbeit.png
 Dateigröße:  68.92 KB
 Heruntergeladen:  1270 mal
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 05.10.2009, 22:09     Titel:
  Antworten mit Zitat      
Hallo
hast du schon über fopen, fread/textscan probiert?

kannst die ASCII Datei anhängen, zumindest ein Teil, ohne ist es schwer zu helfen.
Private Nachricht senden Benutzer-Profile anzeigen
 
chortik
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 14.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2009, 22:39     Titel:
  Antworten mit Zitat      
Hi, ja kann ich gern machen. Im Anhang sind 2 Typen meiner ASCII-Dateien. (rar file da hier kein asc aktzeptiert wird) Mit den beiden Befehlen hab ichs probiert. Kann aber auch sein dat ich nich weiß wie mans gescheit anwendet bisher hab ich nie mit ASSCII-Dateien gearbeitet und mehr als den load Befehel hab ich nie gebraucht.

PHY1.rar
 Beschreibung:
ASCII-File

Download
 Dateiname:  PHY1.rar
 Dateigröße:  4.74 MB
 Heruntergeladen:  570 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 06.10.2009, 00:13     Titel:
  Antworten mit Zitat      
Hallo,

Ich poste schon mal eine Vorab Version, spiele ein wenig damit.
Das Problem machen hier Kommas. Also weiß ich nicht, ob hier auch mit textscan schön lösen könnte. Kenne mich auch nicht wirklich gut mit ascii-einlesen.

Code:

% file in lese modus öffnen
fid=fopen('FSA-VV1_01-01-end-PHY_080219_Original.asc','r');

% die größe abchecken
%
% zeilenweise auslesen
Line = fgetl( fid );
counter = 1;
while ischar(Line) || isempty(Line)
   Line = fgetl( fid );
   if ~isempty([findstr(Line,'[' ), findstr(Line,']')]) || isempty(Line)|| ~ischar(Line)
      continue;
   end
   counter=counter+1;
end%while

% initiliasieren
datum  = cell(1,counter);
data   = cell(1,counter);
%
% springen an Anfang
fseek(fid,0,-1)

% auslesen
Line = fgetl( fid );
counter = 1;
while ischar(Line) || isempty(Line)
   Line = fgetl( fid );
   if ~isempty([findstr(Line,'[' ), findstr(Line,']')]) || isempty(Line)
      continue;
   end
   if ~ischar(Line)
      break;
   end
   % ersetze die Komma durch Punkt
   Line = strrep(Line,',','.');
   % hier habe ich noch problem, aber das löse ich heute nicht mehr
   [datum{counter},data{counter}]=strread(Line,'%s %f');
   counter=counter+1;
end%while
fclose(fid)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
chortik
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 14.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2009, 12:46     Titel:
  Antworten mit Zitat      
Hey danke für die Antwort. Leider krieg ich dein programm bei mir nicht mal zum laufen bzw. es führt alles aus aber wenn ich versuch im workspace die variablen daten oder daum zu öffnen hängt sich mein matlab auf.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 06.10.2009, 16:02     Titel:
  Antworten mit Zitat      
Hallo,
versuche zuerst mit kleineneren(_Trend)
Die Große Datei ist ca 900.000 Zeilen groß.
Kleinere hat dagegen 9000 relevanten Zeilen
Private Nachricht senden Benutzer-Profile anzeigen
 
chortik
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 14.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2009, 19:01     Titel:
  Antworten mit Zitat      
Hab ich grad passt leider nich Sad is alles durcheinandersortiert aber danke trotzdem Smile
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.