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

Textdatei mit nur einer Spalte (zahlen und Text) einlesen

 

NaN_NotaName
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 25.06.14
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 20.08.2014, 19:14     Titel: Textdatei mit nur einer Spalte (zahlen und Text) einlesen
  Antworten mit Zitat      
Hallo an alle,

ich bin neu hier und neu in Matlab und verzweifel gerade an einer vermutlich stinkend einfachen Aufgabe....

Ich möchte ein Skript schreiben, das mir tatsächlich gemessene und simulierte Messdaten plottet. Die simulierten Daten liegen in einer schönen Textdatei vor, die nur Zahlen enthält, mit der hab ich auch keine Probleme. Die Messdaten hingegen liegen in einer Textdatei vor, in der zuerst alle Messwerte untereinander stehen und darunter noch einige Zeilen Text, in denen die Einstellungen der Messapparatur festgehalten sind.

Ich möchte jetzt diese Textdatei einlesen, die Zeilen 4 bis 515 in einen Spaltenvektor schreiben und dann mit diesem weiter schreiben.

Was ich bisher geschafft habe:

Textdatei einlesen mit textscan. Da ich nur eine Spalte habe, in der untereinander zuerst Zahlen und später Text steht, habe ich das mit

Code:


celldata=textscan(fileID, '%s')

 


gemacht. Dann habe ich ein "Cellarray" welches nur aus einer 597x1 - Cell besteht. Ich kann auch mit

Code:

A=celldata{1,1}(4:515,1)
 


die mich interessierenden Zeilen herauspicken. Aber diese dann in numerische Werte umzuwandeln und in einen Vektor zu packen, daran scheitere ich. Mit cell2mat bin ich auf keinen grünen Zweig gekommen. Ich kann zwar sowas machen wie

Code:


eintrag1=cell2mat(A(1))

 
,

aber wenn der Messwert zum Beispiel 48567 war, dann bekomme ich mit numel

Code:

n= numel(eintrag1)

n=5

 


und ich kann den Eintrag 'eintrag1' nicht als ersten Eintrag eines Spaltenvektors verwenden, da die Dimensionen nicht zuammenpassen.

Ich hoffe das war nicht zu wirr... Rolling Eyes Gänzlich andere Lösungsansätze sind natürlich willkommen, ich wollte nur mal meinen bisher gegangenen Weg aufzeigen

Vielen Dank![/code]
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.08.2014, 20:03     Titel: Re: Textdatei mit nur einer Spalte (zahlen und Text) einlese
  Antworten mit Zitat      
Hallo NaN_NotaName,

Wie wäre es, ween Du das File gleicht als Zahlen einliest, statt zuerst Strings zu importieren?
Ein FSCANF ist da eigentlich ausreichend, aber TEXTSCAN kann das auch.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
NaN_NotaName
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 25.06.14
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 21.08.2014, 11:56     Titel:
  Antworten mit Zitat      
Hallo Jan,

fscanf habe ich versucht, aber irgendwie bekomme ich das nicht zum laufen. Mein Code sieht so aus:

Code:


% in der variablen a hab ich den Pfad der zu öffnenden Datei gespeichert

fID=fopen(a, 'r');
data=fscanf(fID, '%d');
fclose(fID);

 


dann ist data aber nur eine leere cell (?)

Code:

data= []
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Aliraza9
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 02.04.15
Wohnort: aaaaaaaaaaaaa
Version: aaaaaaaaaaaaa
     Beitrag Verfasst am: 02.04.2015, 12:13     Titel:
  Antworten mit Zitat      
Hallo,

das klingt nach einer Frage für den Technischen Support von MathWorks. ????
_________________

ali
Private Nachricht senden Benutzer-Profile anzeigen
 
Alpri
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.01.15
Wohnort: ---
Version: R2014_a
     Beitrag Verfasst am: 24.04.2015, 18:32     Titel:
  Antworten mit Zitat      
Hast du es denn mit textscan auch nochmal versucht, also die Werte nicht als String einzulesen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.04.2015, 21:48     Titel:
  Antworten mit Zitat      
Hallo NaN_NotaName,

Code:
fID=fopen(a, 'r');
data=fscanf(fID, '%d');
fclose(fID);

Wenn dies nicht funktioniert, ist eines dieser beiden Probleme aufgetreten: Entweder enthält "a" nicht den Namen einer existierenden Datei, oder die Datei enthält keine Zahl am Anfang. Ersteres wäre sofort klar, wenn Du den Erfolg von FOPEN überprüfst, was man immer machen sollte:
Code:
fID=fopen(a, 'r');
if fID==-1
  error('Cannot open file: %s', a);
end
...
fclose(fID);

Und was den Inhalt des Files betrifft ist nioch nicht klar. Wie genau sehen die Files aus?

Gruß, Jan
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.