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-file mit wechselnd text und Daten

 

Hendrik_1
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 18.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2012, 15:55     Titel: txt-file mit wechselnd text und Daten
  Antworten mit Zitat      
Hallo, ich versuche Files mit diesem Format einzulesen:

X Y Z

1 2 3
5 6 3

X Y Z
4 4 2

Das sind Positionsanganben von mehreren Punktwolken, in einem txt-file. Mein Problem ist die Aufteilung von mehreren Punkten in unterschiedliche Variablen. (In diesem Fall, wären es 2). die bisher benutzen Funktionen (textread, importdata..) lesen alle Daten in eine Variable, oder lesen nur die erste Punktwolke ein.
Beispiel:
Code:

C = importdata(data);
C = 1 2 3
5 6 3
 


Code:

C = textread(data);
C = 1 2 3
5 6 3
4 4 2
 




ich bräuchte aber:
C1 = 1 2 3
5 6 3

C2 = 4 4 2
Sprich, eine neue Textzeile startet eine neue Variable, oder Zeile in einem Vektor.


Hat jemand eine Idee? Bin für gute Tips sehr dankbar
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.03.2012, 21:06     Titel:
  Antworten mit Zitat      
Hallo,

du kannst dazu über textscan iterieren, z.B. so:

Code:
fid = fopen('test12.txt');
C = {};
while ~feof(fid)
    fgetl(fid); % Überschrift überspringen
    C = [C, {cell2mat(textscan(fid, '%f %f %f'))}];
end
fclose(fid);


Da es nur Probleme macht, wenn man viele durchnumerierte Variablen hat, habe ich die Daten in einem Cell Array abgelegt.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 18.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2012, 09:47     Titel:
  Antworten mit Zitat      
Hi,

vielen Dank schonmal für die tips, aber wirklich klappen tut es noch nicht. Ich bekomme im Moment nur leere Cellarrays. Er zeigt, die einzelnen Reihen an, aber speichern funktioniert nicht
Ich hatte aber auch ein paar sachen nicht richtig beachtet. Die einzelnen Werte sind durch Komma getrennt. Deshalb habe ich mal 2 mögliche Dateien, verschiedener Formate angehängt.
Um die Kmmas zu beachten hatte ich den Code folgendermaßen geändert:
Code:

fid = fopen(data);
C = {};
while ~feof(fid)
    fgetl(fid); % Überschrift überspringen
    C = [C, {cell2mat(textscan(fid,',', '%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f'))}];
end
fclose(fid);  
 


beispiele.zip
 Beschreibung:
2 Beispieldateien

Download
 Dateiname:  beispiele.zip
 Dateigröße:  8.79 KB
 Heruntergeladen:  271 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hendrik_1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 18.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2012, 10:41     Titel:
  Antworten mit Zitat      
ich habe ne Lösung, wahrscheinlich nicht besonders elegant, aber sie tuts:
Code:

fid = fopen(data);

n = 0;

while ~feof(fid)
  C = fgetl(fid); % Überschrift überspringen
  test = str2num(C);
 
if isempty (test)
    n = n+1;
    nn = 1;
else
    eval(['cam_' int2str(j) 'dat_' int2str(n) '(:,nn) = test(:,:);'])
    nn = nn+1;
    clear test
end
end
fclose(fid);  
end
 


Vielen Dank für die Tips.
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.