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

Zahlen rausfiltern

 

labby_m
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2015, 00:45     Titel: Zahlen rausfiltern
  Antworten mit Zitat      
Hallo,

habe mit einer Messung Daten gesammelt und möchte die verwerten.

Die Datei.txt sieht so aus:

Code:
Messergebiss
          Spalte1         Spalte2  
          1                   5
          2                   8  
          ...                  ...


Interessant sind für mich nur die Zahlewerte, d.h die ersten zwei Zeilen möchte ich herausfiltern und dem Rest zwei vektoren machen.

Wie kann man so machen, dass Matlab die ersten zwei Zeilen ignoriert.

Zuletzt bearbeitet von labby_m am 22.03.2015, 00:46, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.03.2015, 00:46     Titel:
  Antworten mit Zitat      
Hallo,

z.B. bei textscan die Option 'headerlines' auf 2 setzen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2015, 00:54     Titel:
  Antworten mit Zitat      
Etwa so?

Code:
A=textscan( '%s', '%s', 'Headerlines', '2')
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.03.2015, 01:27     Titel:
  Antworten mit Zitat      
Hallo,

bitte doch mal in die Doku des Befehls schauen. Dann siehst du:
- erst mit fopen die Datei öffnen
- ein Formatstring
- für numerische Daten nicht %s, sondern %f.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2015, 01:37     Titel: Zahlen rausfiltern
  Antworten mit Zitat      
Wo liegt da der Fehler?

Code:
 


fileID = fopen('file.txt');
Data1=textscan(fileID,'%s','%s','headerlines',2);                  


Code:
  Error using textscan
Param/value pairs must come in pairs.

Error in Sync (line 14)
Data1=textscan(fileID,'%f %f','headerlines',2);  


bzw. der folgende Code
Code:
b = fopen('file.txt');
if b ==-1, error('Cannot open file');end
Data1=textscan(b,'%f %f','headerlines',2);
close(b);
celldisp(Data1);


gibt die Fehlermeldung aus:
Code:
Error using close (line 136)
Invalid figure handle.

Error in file (line 15)
close(b);
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 22.03.2015, 02:23     Titel:
  Antworten mit Zitat      
Hallo,

close schließt figures, du benötigst fclose.

http://de.mathworks.com/help/matlab/ref/fopen.html#btrnibo-2

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
labby_m
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2015, 10:42     Titel: Zahlen rausfiltern
  Antworten mit Zitat      
Danke Seban.
So werden keine Fehler angezeigt, aber es werden keine Daten erfasst
Data1 zeigt mir [] [] .

Was stimmt nicht mit dem Code?

Code:
b = fopen('file.txt');
if b ==-1, error('Cannot open file');end
Data1=textscan(b,'%f %f','headerlines',2);
fclose(b);
celldisp(Data1);


Die Datei file.txt sieht wie im ersten Post beschrieben aus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.03.2015, 11:33     Titel:
  Antworten mit Zitat      
Hallo,

ich habe es mit einer Datei wie der oben beschriebenen getestet, und bei mir funktioniert es. Vermutlich weicht das Format der Datei in irgendeiner Form vom angegebenen ab.
Am einfachsten wäre es, wenn du die Datei oder eine kleine Beispieldatei, bei der das Problem auftritt, anhängst.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2015, 12:07     Titel: Zahlen rausfiltern
  Antworten mit Zitat      
Oh, die Datei wurde überschrieben.
Habe es mit einer neuen probiert und es funktioniert.
Wieso klappt das dann nicht ?
Code:
 [Data1,Data2]=textscan(b,'%f %f','headerlines',2);


Data 1 ist dann unterteilt in Data1{1,1} und Data{1,2} und in der Data2 steht eine Zahl
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.03.2015, 13:26     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wieso klappt das dann nicht ?

Weil die Schnittstelle von textscan anders definiert ist. Ich kann nur wieder auf die Dokumentation verweisen:
Zitat:
[C,position] = textscan(___) returns the file or string position at the end of the scan as the second output argument,


Wenn du das trennen möchtest, kannst du das nachträglich per Indizierung machen:
Code:
Data=textscan(b,'%f %f','headerlines',2);
Data1 = Data{1};
Data2 = Data{2};


Grüße,
Harald
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.