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

.txt einlesen ohne kopfzeilen, Sehr große Fils

 

KEH

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2014, 14:58     Titel: .txt einlesen ohne kopfzeilen, Sehr große Fils
  Antworten mit Zitat      
Hallo Leute

Ich steh auf dem schlauch.
Ich will einfach nur eine .txt einlesen und die ersten 6zeilen raus lochen um dann mit der Matrix meine Berechnungen zu starten.

Ich hab nun Alle möglichen Matlabhilfen und alte selbst geschriebene Sachen ausprobiert, ohne Erfolg.

meine besten Erfolge hab ich bis her mit fscanf und fopen hier bei bekomm ich aber nur, sozusagen eine Zahl, ohne Trennungen alles hinternander.

bei anderen versuchen erfahre ich nur wie groß die Matrix ist usw

mit anderen txt fils hab ich es versucht und es ging.

liegt es am tab zwischen den spalten? aber mit normalem Load befehl geht's wenn ich den text vor her raus haue.

bitte´Helft mir =)

probe.txt
 Beschreibung:
hier ein auszug, es sind Vicon Daten falls es hilft

Download
 Dateiname:  probe.txt
 Dateigröße:  6.55 KB
 Heruntergeladen:  277 mal


KEH

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2014, 15:30     Titel:
  Antworten mit Zitat      
Code:

fid=fopen('TESTHK.txt');

header=fscanf(fid,'%s',18)

daten=fscanf(fid,'%15e',[2,inf]);
rest=fscanf(fid,'%s',inf)

daten(1,:)
daten(2,:)

fclose(fid);
 


das war mein test der den besagten wert 'alleszusammen' rausgibt
 
denny
Supporter

Supporter



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

vielleicht so
Code:

fid=fopen('probe.txt');

daten = textscan(fid,'%f', 'HeaderLines', 5, 'Delimiter', '\t' )
daten = daten{1};
fclose(fid);

daten = reshape(daten, 50,  numel(daten)/50)'
 


Zuletzt bearbeitet von denny am 03.10.2014, 00:06, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

am einfachsten ist es meiner Erfahrung nach mit textscan.

Dort kannst du angeben, wieviele Zeilen du einlesen und wieviele du überspringen willst. Was du genau möchtest ("raus lochen"?), wird mir zumindest nicht klar.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2014, 15:45     Titel: Gibt leider nicht das aus was drin ist
  Antworten mit Zitat      
Hey Ihr
Dank euch erst mal.
Also den Code hatte ich auch schon mal etwas anders, Problem hier ich bekomme Werte die garnicht im .txt sind!?!
Hat da einer ne idee zu?

Ich habs jetzt mit dem Import Tool gelöst
kann ich das als Funktion irgend wie einbinden?

Also ich will am ende In einer GUI den ganzen Spaß als Animation laufen lassen ... laufen tut alles für sich nur das mit der GUI ist neu für mich.

Danke für die Hilfe
Hannes
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.10.2014, 16:40     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Also den Code hatte ich auch schon mal etwas anders, Problem hier ich bekomme Werte die garnicht im .txt sind!?!
Hat da einer ne idee zu?

... und wie sah der Code da aus?

Zitat:
Ich habs jetzt mit dem Import Tool gelöst
kann ich das als Funktion irgend wie einbinden?

In Import Tool gibt es unter dem grünen Haken zum Importieren einen schwarzen Pfeil. Da draufdrücken, dann "Generate Function".

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 10.10.2014, 12:13     Titel:
  Antworten mit Zitat      
Der code ist jetzt 1 zu 1 wie oben und er gibt mit 0.06 werte raus in der matrix ist aber 100 bis 2000 der werte bereich

AH gut das mit dem Funktion Funktioniert =)
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.